版本

設定外掛程式 (已停用)

您可以使用多種不同的方式透過外掛程式擴充 ESLint。外掛程式可以包含

  • 自訂規則,以驗證您的程式碼是否符合特定期望,以及在不符合期望時該怎麼做。
  • 自訂設定。
  • 自訂環境。
  • 自訂處理器,從其他種類的檔案中提取 JavaScript 程式碼,或在進行程式碼檢查前預先處理程式碼。

設定外掛程式

ESLint 支援使用第三方外掛程式。在使用外掛程式之前,您必須使用 npm 安裝它。

若要在設定檔內設定外掛程式,請使用 plugins 鍵,其中包含外掛程式名稱的清單。eslint-plugin- 前綴可以從外掛程式名稱中省略。

{
    "plugins": [
        "plugin1",
        "eslint-plugin-plugin2"
    ]
}

以及在 YAML 中

---
  plugins:
    - plugin1
    - eslint-plugin-plugin2

注意事項

  1. 外掛程式會相對於設定檔解析。換句話說,ESLint 會載入外掛程式,如同使用者在設定檔中執行 require('eslint-plugin-pluginname') 所取得的外掛程式一樣。
  2. 基礎設定 (由 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-foofoo/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.js1.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 項目。

變更語言