配置插件

您可以通过各种不同的方式使用插件扩展 ESLint。插件可以包括:

  • 自定义规则来验证您的代码是否满足特定期望,以及如果不满足该期望该怎么办。
  • 自定义配置。
  • 自定义环境。
  • 自定义处理器从其他类型的文件中提取 JavaScript 代码或在 linting 之前预处理代码。

配置插件

ESLint 支持使用第三方插件。在使用插件之前,您必须使用 npm 安装它。

要在配置文件中配置插件,请使用 plugins 键,其中包含插件名称列表。插件名称中可以省略 eslint-plugin- 前缀。

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

在 YAML 中:

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

9m5PqDdNRekxWs9SDjpQlq0lPqzGJDzzAYazkpWC67w=

  1. 插件相对于配置文件进行解析。换句话说,ESLint 加载插件就像用户通过在配置文件中运行 require('eslint-plugin-pluginname') 获得的那样。
  2. 基本配置中的插件(由 extends 设置加载)相对于派生的配置文件。例如,如果 ./.eslintrcextends: ["foo"],而 eslint-config-fooplugins: ["bar"],ESLint 会从 ./node_modules/(而不是 ./node_modules/eslint-config-foo/node_modules/)或祖先目录中找到 eslint-plugin-bar。因此,配置文件和基本配置中的每个插件都是唯一解析的。

命名约定

引入插件

cWnrBuC1QgfyTxKRHUvofPiTrKk7P/qNtoSTm7nkOcphn/YoRK1WJWOqRWBzOCh3CUCcWpNgCwtwzrWERJ5D26fH4fsgs9ZaT9XjcAyJNcc=

SYAgsyIe5VItiDTK0Ua9PQ==

{
    // ...
    "plugins": [
        "jquery", // means eslint-plugin-jquery
    ]
    // ...
}

qcunZyfd7ObnxgsFf9T6uA==

{
    // ...
    "plugins": [
        "@jquery/jquery", // means @jquery/eslint-plugin-jquery
        "@foobar" // means @foobar/eslint-plugin
    ]
    // ...
}

使用插件

GTqeRzEOoDHqYTvD7CGGRw32eIK3dGq0iTLHhiW8/S7ndMB+ukxcXUKtyVDWRdOq+qTTBx44/vShXZGVZTCzHYHt+mcw00MLotoqrYe5a+o=

    4gqp+4cPx+5YTSUdjRPi9V2UwMtzgMKnhHr5PEI5T5nk99JOEnU0GHBNO4eGYbrZyWausrf1RLDyi7wFuYUcad1eZzRqL+zWpQkEWhVoSeKvLVSRtF+ovH/3Zy4dvcG7tFOydtQPRQawViaq8i+qUZHEkiFBVty5qQqmNH1PBV0sNveEkVt1tulvHM1m2mwJEanewFGlnLJ5zX7YHOtqtw2ues26W6QJ0o+M5cli7zBTtuWjo/bx0TLRN5FE4xfgZ2eLQZ9dSKUYm6XLB48HnRDN2dmGbRtW2PnUFTmUv/6At5BmnpbzH3F5JP8noDXS

i5it4iurfMMrzxvmO7gMnA==

{
    // ...
    "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,
    }
    // ...
}

指定处理器

hewpWeo+SKmV5iqf1bBTYKhMDZc1hBMTyRO+rRJNruyMCfZiY4bB7ZG7xTGGR2J/0JFYmD5V4DgK/tRyhdyRwEySXK466jU7+vbc6d5ZE5NoR/hjke3/QRMSE64JSPqCpv9b66pFddeQtjyKsFv8KV75J7Ue3c8QpaqgqhY4yDCAIeojK3aacasCHFJ6eEXjkM9u4Ii+H88pTxelZB+uC+194WSrnRuWvhrgwfOxMRAwcIYuUwlBKa31Ravu/TIAO9E4yTgkrQj0cf6/3LLwTD/4vZvnkKnSZY76EogOFnY=

5odruyzdkvIQEVZfO/xxxEDiQD8gTOQFgfrb81N1v9/vVTkO/fAL1CJJW8SpMwSRKO4qgzDuWDwgKVDNDNosSrUD0n4cfP7vI50XjQm273YbpJI1RnecFe8ZbTV9D5WoBRfQYMvpvMKRDyRJpp7LR2CBxhXB1Tlt6HlruuFS/rOxCDceiSkqPDQB/aArbqQhFRaqlRxCTjc2vZMCloXENqgfUcrrUUT8SXSWDqzopO8BbDMXYjqYDAAVzdl69DqAiXH5n1m1J7bGFTd8kvbO/ZNYfREMCrxyPScFBD8Sw5GbZrDrF1o+8Lz++J4and1L4LGnn+ga2e6OW8XHkP0yaw==

{
    "plugins": ["a-plugin"],
    "processor": "a-plugin/a-processor"
}

zPcHvlaNmnvpZtFgSS7E/heXE1vGLawnzesCMcNoZ/Dhea29c2AvvurudimdyGgc5WA6fq0HvhqGT93MvLnX1ZOHceO7jtWieg7Pt/5E6RMfT6nTmvj+bcdi5sYOc3MOOKMGpy+w0BmndjQGbRbrgfWPm8oF+Zk5jHaoY8dkTXJytaNPERmkqpypdZjCqHIdTN92k9KECbcjPaRu5bq/Fjnj7cvOHeTxhbI6NXKBz+asfopTqpqwdvcavDraA0Rd9zFqNd8CaY0mh93e5SSodmvqshj23yBXYiyPhOdj0BQ=

{
    "plugins": ["a-plugin"],
    "overrides": [
        {
            "files": ["*.md"],
            "processor": "a-plugin/markdown"
        }
    ]
}

FRU66bOzagD8Dfrn404tnhGser+8vgijIwGqvCyexXA9jAErMMjQX2hizq+LnAYuFK6g5enXJaIZn3vQrH4juECwrQBoL+AVWQAVlXTOY3J0s6DnPCkf+fD6bUeYZTMk5/wS/mkVADaH/yqCxuEmH/6awFCPDcu3okRtodYnnmmzFMf6wP05fHuFzLSmMEy3lwHP+Hnim8qi0INQ2UgFJRzRMldWHhC60nrABKIol7TqwzCvdu7bngu7t7AkXeyECpjxLkf0MhmFaKDQYPoWSJ2rAXuTvXBr8Zf+yY6aWAbdsEKkn8DC4ISOiP13PesyUisMsrI2cx1gyQ9HZ5T5cRowQt6WbvSWeD9nQY+RCym75EzSwXuSD9U9bQV5Y/ZaDU4+BJcXsj9+DW/joIIBriTXNE1bxPVPxPFYSnKMkYTmE5OUD1vSZPumBUur+bkQ7+XRHK5zW6+9BtjjMWsDnLRL9OaXMOfV0XXjdu7M16w=

{
    "plugins": ["a-plugin"],
    "overrides": [
        {
            "files": ["*.md"],
            "processor": "a-plugin/markdown"
        },
        {
            "files": ["**/*.md/*.js"],
            "rules": {
                "strict": "off"
            }
        }
    ]
}

ttilLbpp50FzgKnMGiGuw01y0jJ8z/LUy8tfq/4XdD6vuuP4enlgRtBWbofsc1Q+4C9z3hVdXLpLEhbiK7A4x7KSQxPV9gbJQ8V04Ax2qtRsoF41b3ngjlYHx8ZgiNu+I24C15jjUqK4biGMzu0JSPJ8iez8+J2l+4KF2ZrqoJo8uriSqBVbjY0wSZwj/poW3QYzQ00Q2TlRb0rb5Z5C5xTm5fVyydtOzL64lBR6gL0R78iohqJM+WllcbTKTmitGJhkahCX73VAgYyHYxotBQ16syD3todrbVWaddTveNOrDIqLYkJw64YTWq91vVONj0NSoKslpSWm2gkXgh1tSg==