ESLint是一個用來識別 ECMAScript 并且按照規則給出報告的代碼檢測工具,使用它可以避免低級錯誤和統一代碼的風格。ESLint被設計為完全可配置的,主要有兩種方式來配置ESLint:
- 在注釋中配置:使用JavaScript注釋直接把配置嵌入到JS文件中。
- 配置文件:使用下面任一的文件來為全部的目錄和它的子目錄指定配置信息。
- javascript:使用
.eslintrc.js
文件并導出一個包含配置的對象。 - YAML:
.eslintrc.yaml
或者.eslintrc.yml
- JSON:
.eslintrc.json
,并且此文件允許使用JS形式的注釋 - 廢棄的用法:
.eslintrc
,此文件可以是JSON或者YAML - package.json:在
package.json
文件中創建eslintConfig
屬性,所有的配置包含在此屬性中。
- javascript:使用
這些文件的優先級則是按照以上出現的順序(.eslintrc.js
> .eslintrc.yaml
> .eslintrc.yml
> .eslintrc.json
> .eslintrc
> package.json
)。
可以被配置的信息主要分為3類:
- Environments:你的 javascript 腳步將要運行在什么環境(如:nodejs,browser,commonjs等)中。
- Globals:執行代碼時腳步需要訪問的額外全局變量。
- Rules:開啟某些規則,也可以設置規則的等級。
安裝
- 全局安裝
npm i -g eslint
- 局部安裝(推薦)
npm i -D eslint
安裝完畢后,接下來新建一個配置文件.eslintrc.js
,或者使用如下的命令行來自動生成。
eslint --init
配置
指定執行環境
JavaScript 代碼可以運行在瀏覽器或 nodejs 等環境中,每個環境的全局變量都不盡相同(如 nodejs 中沒有 DOM 相關的全局變量)。在配置文件中可以自由的指定執行環境。
// .eslintrc.js
module.exports = {
env: {
browser: true,
node: true,
},
};
所有的環境可以在官網上查詢。
指定全局變量
可以在配置文件或注釋中指定額外的全局變量,false
表明變量只讀:
- 使用注釋來配置:
/* global var1, var2 */
/* global var1:false, var2:false */
- 使用配置文件來配置:
// .eslintrc.js
module.exports = {
globals: {
var1: true,
var2: true,
},
};
規則
在配置文件中可以設置一些規則。
這些規則的等級有三種:
- "off" 或者 0:關閉規則。
- "warn" 或者 1:打開規則,并且作為一個警告(不影響exit code)。
- "error" 或者 2:打開規則,并且作為一個錯誤(exit code將會是1)。
例如:
- 使用配置文件來配置
// .eslintrc.js
module.exports = {
rules: {
eqeqeq: 'off',
curly: 'error',
},
};
- 使用注釋來配置
/* eslint eqeqeq: "off", curly: "error" */
/* eslint eqeqeq: 0, curly: 2 */
也可以在注釋中關閉所有或者某個規則:
/* eslint-disable */
/* eslint-enable */
/* eslint-disable no-alert, no-console */
/* eslint-enable no-alert, no-console */
具體的規則可以在官網上找到,或者使用別人寫好的配置,例如eslint-config-airbnb。
使用方法
命令行
通過命令行工具來使用 eslint 。
eslint [options] file.js [file.js] [dir]
編輯器
lint