Eslint 노트

5540 단어 node.jseslint
1: Eslint 개념
ESLint는 ECMAScript/JavaScript 코드에서 보고 모드와 일치하는 것을 식별하고 보고하는 도구로 코드의 일치성을 확보하고 오류를 피하는 것을 목표로 한다.말하자면 너희 작은 팀장이 너희들에게 그가 쓴 코드의 스타일에 따라 코드를 쓰게 하려고 한다(완전 플러그인 말의 설정 플러그인과 규칙). 이 규칙은 어느 단체에서 손을 내밀어 가져왔는지 알 수 없다(각종 비교적 규범화된 일부 규칙 설정)
2: Eslint의 일반적인 구성
  • parser: 해상도를 설정합니다. 이 해상도는 원본 코드를AST로 해석한 후에 규칙을 검증하는 것입니다. 기본적으로는 Espree입니다. ECMAScript5의 특성을 해석하고 다른 해상도도 사용할 수 있습니다. 현재 자주 사용하는babel-eslint, typescript-eslint-parser 등
  • parserOptions: 해결된 구성, 일반적인 구성 나열
  • ecmaVersion: 해석된 ECMAScript의 버전, 기본 ECMAScript5
  • sourceType: 구문 분석의 모듈 유형을 정의합니다.script 또는 module(ECMAScript 모듈)
  • env: 설정 해석 환경, env의 값은 eslint에 기본적으로 전역 변수를 설정합니다. 예를 들어 브라우저의 전역 변수, jQuery, jQuery의 전역 변수를 설정합니다. 이 값은 병존할 수 있습니다. 링크를 주고 env 환경 변수를 볼 수 있습니다
  • 글로벌s: 전역 변수, 원본 파일에서 정의되지 않은 변수에 접근하면 no-undef, 일부 전역 변수를 정의하면 글로벌스
    console.log(globalVarible);
    // 'globalVarible' is not defined  no-undef
    
    // globals: {
    //  globalVarible: false;
    // }
    // will make it right
  • 를 사용할 수 있음
  • plugins: 플러그인, 플러그인을 통해 eslint의 기능을 강화하고 추가 설정을 출력할 수 있습니다. npm에서 eslint-plugin-*를 검색해서 자주 사용하는 플러그인을 찾을 수 있습니다
  • rules: 규칙, 여기는 자주 사용하는 설정의 일부 항목에 사용되는 규칙입니다. 규칙 설정은 eslint의 기본적인 일부 rules일 수도 있고 플러그인 중의 일부 rules일 수도 있습니다. 예를 들어 vue/*, 0->off 닫기 규칙 1->warn 경고 2->error 오류 레벨을 표시할 수도 있습니다. 만약에 일부 규칙에 다른 옵션이 있다면 수조 글씨량 설정
       {
           "rules": {
               "eqeqeq": "off",
               "curly": "error",
               "quotes": ["error", "double"] //         ,     
           }
       }
  • 을 통해 설정할 수 있습니다.
  • 루트: 현재 파일의 eslint 프로필은 현재 디렉터리에서 찾을 것입니다. 존재하지 않으면 부모에서 루트 디렉터리로 순서대로 찾을 것입니다. 이 항목으로 제한하기 위해 프로젝트의 루트 디렉터리에 있는 eslint 프로필 루트:true, 계속 위로 찾을 수 있습니다
  • extends: 계승의 개념은 이전 설정에서 계승된 규칙을 수정하는 동시에 계승된 규칙을 수정할 수 있다. 수정은 두 가지로 나뉘는데 오류 단계나 전체 덮어쓰기 규칙만 수정할 수 있다. 예를 들어eslint:recommended를 사용하여eslint의 핵심 규칙을 열 수 있다. 이런 규칙은 아래 링크에서eslint:recommended 규칙을 찾을 수 있고 제3자가 이미 설정한 것도 계승할 수 있다.예를 들어eslint-plugin-vue
       module.exports = {
         extends: [
           // add more generic rulesets here, such as:
           // 'eslint:recommended',
           'plugin:vue/recommended'
         ],
         rules: {
           // override/add rules settings here, such as:
           // 'vue/no-unused-vars': 'error'
         }
       }
  • 이상의 설정은 일상적인 개발의 수요를 충족시킬 수 있다. inline Comments는 원본 파일에서 Eslint를 제어하는 데 도움을 줄 수 있다. 예를 들어 한 줄의 검증을 무시하고 원본 파일에 전역 변수를 추가하는 등이다.
    //     eslint      
    /* eslint-disable */
    
    alert('foo');
    
    /* eslint-enable */
    
    //         no-alert
    alert('foo'); // eslint-disable-line no-alert
    
    //            
    /* global var1, var2 */
    
    //      inline comment   eslint   ,      

    3. eslint 설정을 제시하여 분석
    한 항목의 수요를 간단하게 설명하여 설정하다
  • 프로젝트의 원본 변환은babel을 사용하여es6에서es5
  • 로 옮겨야 합니다
  • Vue 개발을 사용하려면 제어*.vue 파일의 코드 통일 스타일
  • 기존의 규범 제어를 사용한다. 예를 들어 VueCli3.0 열려 있는 airbnb config
  • 프로젝트 구성원의 사용 습관에 따라 규칙적인 스위치를 약정한다
  • //   VueCli3.0         ,eslintrc.js     
    module.exports = {
      root: true, //      eslint  
      env: {
        node: true  // node   ,      process       
      },
      'extends': [
        'plugin:vue/essential',  // Vue  ,   eslint-plugin-vue rule,           
        'eslint:recommended'  //    eslint       , eslint rules       recommended
      ],
      //               rules
      rules: {
        'no-console': process.env.NODE_ENV === 'production' ? 'error' : 'off',
        'no-debugger': process.env.NODE_ENV === 'production' ? 'error' : 'off'
      },
      parserOptions: {
        parser: 'babel-eslint'
      }
    }

    VueCli3.0 공식적으로 준 설정은 사실 충분하다. 스스로 사용자 정의rules를 설정하고 다음에 몇 가지 업무 장면을 말한 다음에eslint 설정을 수정한다.
  • 원본에서document 등 변수를 사용할 때 필요
    module.exports = {
      env: {
        browser: true,   // window、document             
      }
    }
  • Vue를 초기화할 때 vm = new Vue({})의 인용을 주었습니다. 이것은 전역에서 사용됩니다
    module.exports = {
      globals: {
        vm: false, //       vm      ,  false    vm    
        DDLogin: false, //          
      }  
    }
  • 수정 VueCli3.0 기본 계승 규칙은 eslint:recommended에 적용되지 않습니다.airbnb-base config (React 부분 포함하지 않음)
    # use npm5+   airbnb-base   eslint eslint-plugin-import(  import     )
    npx install-peerdeps --dev eslint-config-airbnb-base
     module.exports = {
       'extend': [
          'plugin:vue/recommended',
          'airbnb-base'
       ],
     }
  • 팀에 따라 규칙을 제정
    module.exports = {
      rules: {
        'vue/no-v-html': 'off', //                   
      }
    }
  • 4:eslint plugin or config
    다음에 자주 사용하는 eslint-plugin-(eslint의 기능을 강화하고 규칙을 제공할 수 있음)와 eslint-config-(공유 가능한 설정은 조합 규칙이 설정 대상을 내보낼 뿐입니다)
  • eslint-plugin-vue(Vue template,script의 검사),eslint-plugin-react(React의 검사)
  • eslint-plugin-html(html 중의 js 부분에 대한 검사)
  • eslint-plugin-import(ES6 Module import 부분에 대한 검사),webpack alias 별명에 맞추어 import 자원의 존재 여부를 판정할 수 있음
  • eslint-plugin-promise(Promise에 대한 검사)
  • npm에 직접 검색하세요,eslint-plugin,AST를 돌릴 수만 있다면 무엇이든 할 수 있고 어떤 검사도 할 수 있습니다
  • 총괄: 코드 규범은 이런 것들에 기준이 없기 때문에 우리는 자신의 규칙을 완전히 사용자 정의할 수 있고 기존의 규칙을 사용할 수도 있다. 설정은 자신의 규칙을 쓸 수 있다. 단체로서 코드 스타일이 통일되는 것은 필요하다. 본 편은 간단하게 eslint의 기본적인 사용을 기록할 뿐이다. 나머지는 독자 스스로 자신의 프로젝트와 결합하여 규칙을 사용하고 플러그인을 개발하여 수요를 만족시켜야 한다.
  • eslint 중국어 홈페이지
  • eslint-plugin-vue 홈페이지
  • npm 홈페이지, 자주 사용하는plugin or config
  • 검색

    좋은 웹페이지 즐겨찾기