ESLint 規范項目代碼


ESLint 由 JavaScript 紅寶書 作者 Nicholas C. Zakas 編寫, 2013 年發布第一個版本。 NCZ 以可擴展、每條規則獨立、不內置編碼風格為理念編寫了一個 lint 工具。

中文官方網站

英文官方網站

什么是 ESLint ?

ESLint 是在 ECMAScript/JavaScript 代碼中識別和報告模式匹配的工具,它的目標是保證代碼的一致性和避免錯誤。在許多方面,它和 JSLint、JSHint 相似,除了少數的例外:

  • ESLint 使用 Espree 解析 JavaScript。
  • ESLint 使用 AST 去分析代碼中的模式
  • ESLint 是完全插件化的。每一個規則都是一個插件並且你可以在運行時添加更多的規則。

使用

全局安裝

npm install -g eslint

初始化

  如果你的項目還沒有配置文件(.eslintrc)的話,可以通過指定–init參數來生成一個新的配置文件:

  eslint --init

  運行eslint –init后,會在當前目錄下生成一個.eslintrc文件,你可以在這個文件中配置一些規則。

使用 ESLint 檢測任何 JavaScript 文件:

  eslint test.js test2.js

ESLint 中一些規則運行命令它可以幫你自動修復

  eslint test.js --fix

配置

 

ESLint被設計為完全可配置的,主要有兩種方式來配置ESLint:

  1. 內嵌配置:將配置信息以注釋的形式寫在要檢驗的文件內
  2. 文件配置:利用javascript、json、yml語言的語法,生成名為.eslintrc.*的配置文件,將配置信息寫到文件內

      ESLint 支持幾種格式的配置文件,如果同一個目錄下有多個配置文件,ESLint 只會使用一個。優先級順序如下:

    1. JavaScript - 使用 .eslintrc.js 然后輸出一個配置對象。
    2. YAML - 使用 .eslintrc.yaml 或 .eslintrc.yml 去定義配置的結構。
    3. JSON -使用 .eslintrc.json 去定義配置的結構,ESLint 的 JSON 文件允許 JavaScript 風格的注釋。
    4. Deprecated -使用 .eslintrc,可以使 JSON 也可以是 YAML。
    5. package.json - 在 package.json 里創建一個 eslintConfig屬性,在那里定義你的配置。

文件配置方式

env:你的腳本將要運行在什么環境中

Environment可以預設好的其他環境的全局變量,如brower、node環境變量、es6環境變量、mocha環境變量等

'env': { 'browser': true, 'commonjs': true, 'es6': true },

 

globals:額外的全局變量

示例:

globals: { vue: true, wx: true },

 

rules:開啟規則和發生錯誤時報告的等級

示例:

'rules': { // no-var 'no-var': 'error', // 要求或禁止 var 聲明中的初始化 'init-declarations': 2, // 強制使用單引號 'quotes': ['error', 'single'], // 要求或禁止使用分號而不是 ASI 'semi': ['error', 'never'], // 禁止不必要的分號 'no-extra-semi': 'error', // 強制使用一致的換行風格 'linebreak-style': ['error', 'unix'], // 空格2個 'indent': ['error', 2, {'SwitchCase': 1}], // 指定數組的元素之間要以空格隔開(,后面), never參數:[ 之前和 ] 之后不能帶空格,always參數:[ 之前和 ] 之后必須帶空格 'array-bracket-spacing': [2, 'never'], // 在塊級作用域外訪問塊內定義的變量是否報錯提示 'block-scoped-var': 0, // if while function 后面的{必須與if在同一行,java風格。 'brace-style': [2, '1tbs', {'allowSingleLine': true}], // 雙峰駝命名格式 'camelcase': 2, // 數組和對象鍵值對最后一個逗號, never參數:不能帶末尾的逗號, always參數:必須帶末尾的逗號, 'comma-dangle': [2, 'never'], // 控制逗號前后的空格 'comma-spacing': [2, {'before': false, 'after': true}], // 控制逗號在行尾出現還是在行首出現 'comma-style': [2, 'last'], // 圈復雜度 'complexity': [2, 9], // 以方括號取對象屬性時,[ 后面和 ] 前面是否需要空格, 可選參數 never, always 'computed-property-spacing': [2, 'never'], // TODO 關閉 強制方法必須返回值,TypeScript強類型,不配置 // 'consistent-return': 0 }

 

規則的錯誤等級有三種:

0或'off':關閉規則。
1或'warn':打開規則,並且作為一個警告(並不會導致檢查不通過)。
2或'error':打開規則,並且作為一個錯誤 (退出碼為1,檢查不通過)。

參數說明:

參數1 : 錯誤等級 
參數2 : 處理方式

"comma-dangle": ["error", "never"],

 

上述配置只是簡要將最基本的一些配置羅略出來,如果有需要建議去上方官網中查看。

配置代碼注釋方式

有時我們可能要在代碼中忽略eslint的某種檢查,或者加入某種特定檢查,此時我們可以用如下的方式:

示例:

  1. 忽略 no-undef 檢查
/* eslint-disable no-undef */ 

 

  1. 忽略 no-new 檢查
/* eslint-disable no-new */ 

 

  1. 設置檢查
/*eslint eqeqeq: off*/ /*eslint eqeqeq: 0*/

eslint 檢查指令

  1. 檢查且修復
eslint * --fix

 

  1. 檢查指定文件
eslint app.js --fix

開發工具上的使用

WebStorm

Preferences -> Languages & Frameworks -> JavaScript -> Code Quality Tools -> Eslint -> Enable (勾選) -> Apply -> OK

Atom

安裝linter-eslint

Sublime

1. 在 package control 中先安裝SublimeLinter

2. 再安裝SublimeLinter-contrib-eslint

3. 在項目目錄下新建 .eslintrc 文件,自定義規則

4. 重新載入文件應該就生效了(不生效的話 Ctrl+Shift+P 調用命令面板 找到 sublimelinter: toggle linter 設置生效就好了)

結語

Eslint 對於每一個開發者而言都是非常值得使用的,這樣會強制你寫出高質量且整潔的代碼,所以建議大家將Eslint集成進入,來提高項目的質量。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM