設定外掛程式(已棄用)
您可以使用多種不同的方式來擴展 ESLint 的功能。外掛程式可以包含:
- 自訂規則,以驗證您的程式碼是否符合特定期望,以及在不符合期望時該怎麼做。
- 自訂設定。
- 自訂環境。
- 自訂處理器,以從其他類型的檔案中提取 JavaScript 程式碼,或在程式碼檢查之前預處理程式碼。
設定外掛程式
ESLint 支援使用協力廠商外掛程式。在使用外掛程式之前,您必須使用 npm 安裝它。
若要在設定檔內設定外掛程式,請使用 plugins
鍵,其中包含外掛程式名稱的清單。外掛程式名稱可以省略 eslint-plugin-
前綴。
{
"plugins": [
"plugin1",
"eslint-plugin-plugin2"
]
}
以及在 YAML 中
---
plugins:
- plugin1
- eslint-plugin-plugin2
注意事項
- 外掛程式會相對於設定檔解析。換句話說,ESLint 會載入外掛程式,就像使用者在設定檔中執行
require('eslint-plugin-pluginname')
所取得的一樣。 - 基本設定(由
extends
設定載入)中的外掛程式會相對於衍生設定檔。例如,如果./.eslintrc
有extends: ["foo"]
,而eslint-config-foo
有plugins: ["bar"]
,則 ESLint 會從./node_modules/
(而不是./node_modules/eslint-config-foo/node_modules/
)或上層目錄中尋找eslint-plugin-bar
。因此,設定檔和基本設定中的每個外掛程式都會唯一解析。
命名慣例
包含外掛程式
對於非作用域和作用域套件,都可以省略 eslint-plugin-
前綴。
非作用域套件
{
// ...
"plugins": [
"jquery", // means eslint-plugin-jquery
]
// ...
}
作用域套件
{
// ...
"plugins": [
"@jquery/jquery", // means @jquery/eslint-plugin-jquery
"@foobar" // means @foobar/eslint-plugin
]
// ...
}
使用外掛程式
外掛程式中定義的規則、環境和設定必須使用以下慣例來參照:
eslint-plugin-foo
→foo/a-rule
@foo/eslint-plugin
→@foo/a-config
@foo/eslint-plugin-bar
→@foo/bar/a-environment
例如:
{
// ...
"plugins": [
"jquery", // eslint-plugin-jquery
"@foo/foo", // @foo/eslint-plugin-foo
"@bar" // @bar/eslint-plugin
],
"extends": [
"plugin:@foo/foo/recommended",
"plugin:@bar/recommended"
],
"rules": {
"jquery/a-rule": "error",
"@foo/foo/some-rule": "error",
"@bar/another-rule": "error"
},
"env": {
"jquery/jquery": true,
"@foo/foo/env-foo": true,
"@bar/env-bar": true,
}
// ...
}
指定處理器
外掛程式可以提供處理器。處理器可以從其他類型的檔案中提取 JavaScript 程式碼,然後讓 ESLint 檢查 JavaScript 程式碼。或者,處理器可以在預處理期間轉換 JavaScript 程式碼。
若要在設定檔中指定處理器,請使用 processor
鍵,並使用斜線串連外掛程式名稱和處理器名稱。例如,以下程式碼會啟用外掛程式 a-plugin
提供的處理器 a-processor
。
{
"plugins": ["a-plugin"],
"processor": "a-plugin/a-processor"
}
若要為特定類型的檔案指定處理器,請結合使用 overrides
鍵和 processor
鍵。例如,以下程式碼會針對 *.md
檔案使用處理器 a-plugin/markdown
。
{
"plugins": ["a-plugin"],
"overrides": [
{
"files": ["*.md"],
"processor": "a-plugin/markdown"
}
]
}
處理器可能會建立具名的程式碼區塊,例如 0.js
和 1.js
。ESLint 會將此類具名程式碼區塊視為原始檔案的子檔案。您可以在設定的 overrides
區段中為具名的程式碼區塊指定其他設定。例如,以下程式碼會針對 markdown 檔案中以 .js
結尾的具名程式碼區塊停用 strict
規則。
{
"plugins": ["a-plugin"],
"overrides": [
{
"files": ["*.md"],
"processor": "a-plugin/markdown"
},
{
"files": ["**/*.md/*.js"],
"rules": {
"strict": "off"
}
}
]
}
ESLint 會檢查具名程式碼區塊的檔案路徑,然後如果任何 overrides
項目不符合檔案路徑,則會忽略這些區塊。如果您想要檢查 *.js
以外的具名程式碼區塊,請務必新增 overrides
項目。