ESlint 支持第三方插件,在使用以前須要先將插件下載到本地。這裏須要注意的是,若是 ESlint 是全局安裝的,那麼第三方插件也必需要安裝爲全局;局部安裝也同理。node
在配置文件中經過設置 plugins 的屬性值來配置插件,plugins 值是一組插件名列表,插件名能夠省略前綴的 eslint-plugin。好比:react
{
"plugins": [
"plugin1",
"eslint-plugin-plugin2"
]
}
複製代碼
ESlint 支持在配置文件中添加共享設置,在共享設置中設置的對象能被任一即將執行的規則獲取到,因此這在開發自定義規則插件而言很重要,可以下設置:git
{
"settings": {
"sharedData": "Hello"
}
}
複製代碼
配置文件的使用分爲兩種方式:es6
// 使用這個文件做爲額外的配置文件,如存在 .eslintrc.* 文件則覆蓋選項
eslint -c myconfig.json
// 若但願徹底不用 .eslintrc.* 中的配置,不過要注意須要和 -c 命令搭配使用
eslint --no-eslintrc
複製代碼
ESlint支持幾種格式的配置文件,優先級排序以下:json
配置的層疊機制爲:距離文件最近的 .eslintrc 優先級最高,其次是父文件夾中的,以此類推。若趕上不一樣的 .eslintrc 文件之間有衝突的屬性,則優先級高的覆蓋優先級低的(同級別的配置可根據上面提到的文件格式優先級決定)。數組
因爲 ESlint 默認會從文件當前目錄一直查找到系統根目錄,可能會致使一些意料以外的結果。要想避免這種默認行爲,能夠在當前項目的根目錄中的配置文件添加 root: true,配置以後往上查找會在項目根目錄終止。bash
完整的優先級由高到低排序以下:ide
在配置文件中,經過配置 extends 咱們能夠在基礎配置之上對規則進行擴展。extend 可選的值有:ui
而在配置文件中定義的 rules 能夠在擴展配置中進行擴展(如存在衝突則覆蓋)。spa
官方提供的擴展有 eslint:recommended 和 eslint:all,其中 eslint:recommended 包括了規則列表中有 ✔ 標記的規則項;eslint:all 包含了當前版本的 ESlint 包含的全部規則項,因爲這個擴展常常隨着 ESLint 的版本更新變更,故在生產模式下不推薦使用。
咱們也可使用插件中的配置,對於這類擴展,extends 屬性值能夠由如下部分組成:
好比下面這個擴展:
{
"plugins": [
"react"
],
"extends": [
"eslint:recommended",
"plugin:react/recommended"
],
"rules": {
"no-set-state": "off"
}
}
複製代碼
除此以外,還可使用自定義的配置文件,好比:
{
"extends": [
"./node_modules/coding-standard/eslintDefaults.js",
"./node_modules/coding-standard/.eslintrc-es6",
"./node_modules/coding-standard/.eslintrc-jsx"
],
"rules": {
"eqeqeq": "warn"
}
}
複製代碼
有時候咱們須要對配置進行更精細的控制,好比同一個目錄下的文件要有不一樣的配置。要達到這個目的,咱們能夠將配置寫入 overrides 屬性中,它將只被應用到符合匹配模式中的文件中。具體規則以下:
{
"rules": {
"quotes": ["error", "double"]
},
"overrides": [
{
"files": ["bin/*.js", "lib/*.js"],
"excludedFiles": "*.test.js",
"rules": {
"quotes": ["error", "single"]
}
}
]
}
複製代碼
目前只能經過 --ext 命令進行這一操做。