版本

配置插件 (已弃用)

你可以通过多种不同的方式使用插件扩展 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 条目。

更改语言