Nuxt.js에 Pretter ESLint를 올바르게 넣습니다.

네, 그것도 좋아요.


Nuxt.2022/4시 js에 Pretier ESLint를 적절하게 추가하는 방법을 총결하였다.
전제 조건
  • [email protected]
  • [email protected]웹 팩의 경우 4.46.0
  • [email protected]
  • [email protected]
  • [email protected]
  • [email protected]
  • 어쨌든 환경 구축


    최종 패키지.json
    {
      (中略)
      "scripts": {
        (中略)
        "lint:js": "eslint --ext \".js,.vue\" --ignore-path .gitignore .",
        "lint:style": "stylelint \"**/*.{vue,css}\" --ignore-path .gitignore",
        "lint": "yarn lint:js && yarn lint:style"
      },
      "dependencies": {
        "@nuxtjs/eslint-module": "^3.0.2",
        "@nuxtjs/stylelint-module": "^4.1.0",
        "nuxt": "^2.15.8"
      },
      "devDependencies": {
        "@babel/eslint-parser": "^7.16.3",
        "@nuxtjs/eslint-config": "^8.0.0",
        "eslint": "^8.4.1",
        "eslint-config-prettier": "^8.3.0",
        "eslint-plugin-nuxt": "^3.1.0",
        "postcss-html": "^1.3.0",
        "prettier": "^2.5.1",
        "sass": "^1.43.4",
        "sass-loader": "^10.2.0",
        "stylelint": "^14.1.0",
        "stylelint-config-prettier": "^9.0.3",
        "stylelint-config-recess-order": "^3.0.0",
        "stylelint-config-standard-scss": "^3.0.0"
      }
    }
    
    

    1. Pretter 설치


    yarn add -D prettier
    

    2.ESlint 등의 설치


    yarn add @nuxtjs/eslint-module
    
    yarn add -D eslint eslint-config-prettier 
    @babel/eslint-parser eslint-plugin-nuxt @nuxtjs/eslint-config
    

    3. Styleant 설치 등


    공통부분
    yarn add @nuxtjs/stylelint-module
    
    yarn add -D stylelint stylelint-config-prettier
    
    다른 부분
    css 사용 시
    yarn add -D stylelint-config-order stylelint-config-standard
    
    scss 사용 시
    yarn add -D sass sass-loader@^10.2.0 
    stylelint-config-recess-order stylelint-config-standard-scss
    

    설정


    1. ESlight 설정


    결국eslintrc.js
    module.exports = {
      root: true,
      env: {
        browser: true,
        es6: true,
        node: true,
      },
      extends: ['@nuxtjs', 'plugin:nuxt/recommended', 'prettier'],
      parserOptions: {
        parser: '@babel/eslint-parser',
        requireConfigFile: false,
      },
      plugins: [],
      rules: {
        semi: [2, 'never'],
        'no-unused-vars': 'off',
        'no-console': 'off',
        'no-sparse-arrays': 'off',
        'array-callback-return': 0,
        'import/no-named-as-default': 0,
        // vue settings
        'vue/script-setup-uses-vars': 0,
        'vue/attribute-hyphenation': 0,
        'vue/no-v-html': 0,
        'vue/multi-word-component-names': 0,
        // nuxt settings
        'nuxt/no-globals-in-created': 0,
        'nuxt/no-env-in-hooks': 0,
      },
    }
    

    1-1. ESLit 자체 설정


    개요


  • 최소한 필요한 것은 eslint, @nuxtjs/eslint-config 두 개입니다@nuxtjs/eslint-config 설정@nuxtjs!
    eslint-loader는 추천하지 않습니다.eslint-webpack-plugen으로 대체하세요.
    Nuxt에서 @nuxt/[email protected][email protected]@nuxt/eslint-module가 포함되어 있기 때문에 넣으면 OK입니다.
    !
    이전에는nuxt였다.config.js의build에 다음 내용을 추가했지만 @nuxt/eslint-module 때문에 필요하지 않습니다.
    build: {
      extend(config, ctx) {
        if (ctx.isDev && ctx.isClient) {
          config.module.rules.push({
            enforce: 'pre',
            test: /\.(js|vue)$/,
            loader: 'eslint-loader',
            exclude: /(node_modules)/
          })
        }
      }
    }
    

  • vue용 설정 파일로 eslint-plugen-nuxtplugin:nuxt/recommended로 설정

  • prettier와의 경쟁 규칙을 닫기 위해eslint-config-prettier(마지막으로 설정prettier

  • babel용 설정 파일 @babel/eslint-parser
    !
    babel-eslint는 추천하지 않습니다.@babel/eslint-parser 대신 (eslint@v8해당).
  • 1-2. ESLight 및 Preettier 공동 작업을 위한 설정


    먼저 ESLight 및 Preettier를 결합하려면 경쟁 규칙을 해제해야 합니다.
    경쟁 규칙을 취소하는 프로그램 라이브러리로서 다음과 같은 두 가지 상황이 자주 발생한다.

  • eslint-plugin-prettier !
    2022/5는 현재 에스링크-plugen-prettier를 추천하지 않습니다.

  • eslint-config-prettier
  • 다음과 같이 설정합니다.
    {
      "extends": ['prettier'] // 末尾に記述する v8.0.0からは 'prettier'のみでOK
    }
    
  • 다음은 ESLight 및 Pretter 가 이전에는 두 가지 방식으로 협력하는 방법입니다.

  • 사용prettier-eslint Preettier에서 ESLight
  • 호출
  • 순수한prettier 명령을 실행한 후eslint 명령을 실행
  • !
    하지만 prettier-eslint 추천하지 않기 때문에prettier-eslint 작가도 그렇기 때문에 지금은 두 번째 방법이다.

    2. Styleant 설정


    결국stylelintrc.js
    module.exports = {
      customSyntax: 'postcss-html',
      extends: [
        'stylelint-config-standard-scss',
        'stylelint-config-recess-order',
        'stylelint-config-prettier'
      ],
      plugins: [],
      ignoreFiles: ['**/node_modules/**', '**/.nuxt/**', '**/dist/**'],
      rules: {
        'at-rule-no-unknown': false,
        'scss/at-rule-no-unknown': true,
        'scss/comment-no-empty': null,
        'string-quotes': 'single',
        'block-no-empty': null,
        'number-leading-zero': null,
        'color-hex-length': 'short',
        'color-no-invalid-hex': true,
        indentation: 2,
        'length-zero-no-unit': true,
        'media-feature-name-no-vendor-prefix': true,
        'shorthand-property-no-redundant-values': true,
        'no-invalid-position-at-import-rule': null,
        'no-irregular-whitespace': null,
        'selector-class-pattern': null,
        'property-no-unknown': null,
        // prettierのインラインスタイルの末尾のコロンを削除するとコンフリクトするため、回避設定
        'declaration-block-trailing-semicolon': null,
        // ::v-deepエラー回避
        'selector-pseudo-class-no-unknown': null
      }
    }
    

    2-1. stylent 자체 설정


    개요

  • 최소한 필요한 것은 스타일nt와 @nuxtjs/stylent-module 두 개
  • postcss-in
  • scss를 사용하면 styllelint-Sscss
  • prettier와의 경쟁 규칙을 닫기 위해stylent-config-prettier(끝에 설정)
  • stylelint@14하면, 만약, 만약...stylelint@14시스템 내부postcss@7시스템 사용, 다른 한편postcss-sscsspostcss@8시스템이 필요하기 때문에 최고 수준에 도달해야 한다postcss@8시스템 설치 필요
  • 문법 검사 규칙 집합

  • 표준 설정: stylelint-config-standard
    {
      "extends": ["stylelint-config-standard"]
    }
    
  • 약간 여유 있는 설정: stylelint-config-recommended
    {
       "extends": ["stylelint-config-recommended"]
    }
    
  • 정렬 규칙 세트

  • 표준 정렬: stylelint-order
    상세한 규칙 설정 방법은여기.
    {
      "plugins": ['stylelint-order'],
      "rules": { 'order/properties-alphabetical-order': true } //ABC順に並べる
    }
    
  • recess의 순서에 따라: stylelint-config-recess-order
    {
      "extends": ['stylelint-config-recess-order']
    }
    
  • 2-2. 스타일링과 프리티어의 협업을 위한 설정


    우선 ESLight과 마찬가지로 Preettier와 합작하려면 경쟁 규칙을 닫아야 한다.

  • stylelint-config-prettier.
  • 다음은 Stylient와 Preettier가 수행할 때의 합작 방법으로 이전에 3가지가 있었다.

  • 사용stylelint-prettier Styleant에서 Pretter
  • 호출

  • 사용prettier-stylelint Pretier에서 Styleant 호출
  • 순수하게prettier를 실행한 후에 스타일ant 명령을 호출하는 방법
  • !
    2022/5는 현재 추천하지 않습니다stylelint-prettier.또 prettier-stylelint도 실행 속도가 느리기 때문에 사용을 권장하지 않는다.ESLin과 마찬가지로 개인적으로는 3번을 추천합니다.

    Type script 지원

  • @nuxtjs/eslint-config@nuxtjs@nuxtjs/eslint-config-typescript
  • 로 교체
  • @babel/eslint-parser@typescript-eslint/parser
  • 로 교환
    {
      "root": true,
      "env": {
        "browser": true,
        "es6": true,
        "node": true,
      },
      "extends": ["@nuxtjs/eslint-config-typescript", "plugin:nuxt/recommended", "prettier"],
      "parserOptions": {
        "ecmaVersion": 13,
        "parser": "@typescript-eslint/parser",
        "requireConfigFile": false,
      }
    }
    


    settings.json
    {
      "typescript.format.insertSpaceAfterSemicolonInForStatements": false,
      "javascript.format.insertSpaceAfterSemicolonInForStatements": false,
      "editor.tabSize": 2,
      "editor.hover.enabled": false,
      "editor.formatOnSave": true,
      "editor.codeActionsOnSave": {
        "source.fixAll.stylelint": true,
        "source.fixAll.eslint": true
      },
      "editor.defaultFormatter": "esbenp.prettier-vscode",
      "vetur.format.enable": false,
      "editor.guides.bracketPairs": true,
      "git.ignoreLimitWarning": true,
      "stylelint.validate": ["css", "scss"],
      "css.validate": false,
      "scss.validate": false
    }
    

    좋은 웹페이지 즐겨찾기