如何删除 eslint 插件 eslint-plugin-jsx-a11y?

How to remove eslint plugin eslint-plugin-jsx-a11y?

我为我的 React 项目设置了 eslint(Airbnb 编码风格),它具有 "eslint-plugin-jsx-a11y" 的依赖性,我不希望我的当前项目使用它。

我的问题是如何删除这个特定的插件 "eslint-plugin-jsx-a11y"。

当我卸载 "eslint-plugin-jsx-a11y" 时,出现以下错误:

"Failed to load plugin jsx-a11y: Cannot find module 'eslint-plugin-jsx-a11y'"

有什么办法可以解决以上问题吗?

尝试安装最新版本的react-scripts

如果这不起作用,请尝试一直更新到最新的 1.0.10,更新我的 package.json 中的 react 和 react-dom,删除包-lock.json 并重新安装 node_modules.

首先,您需要删除 .eslintrc 上对插件 (eslint-plugin-jsx-a11y) 的引用(这就是为什么当您卸载它时,您的 eslint 配置给您一个错误):

  1. extends 中搜索并删除(如果有)plugin:jsx-a11y/recommended
  2. plugins中搜索并删除:jsx-a11y.
  3. 然后在rules中删除所有涉及jsx-a11y的规则(例如:"jsx-a11y/rule-name": 2)。
  4. 终于可以从项目中删除它了:npm uninstall eslint-plugin-jsx-a11y --save-dev.

PS:如果您对 eslint-plugin-jsx-a11y 有任何 disable 语句,请记得将其删除(不再需要它们)

如果您明确包含 jsx-a11y 插件,Alberto Perez 的回答是有效的。但是如果你扩展另一个包含 jsx-a11y 的插件,他的方法就不起作用了。

如果是这样你可以使用这个:

第一个解决方案

https://github.com/mradionov/eslint-plugin-disable

目前不支持eslint@8。 见 issue.

第二种解决方案

https://github.com/airbnb/javascript/issues/2032#issuecomment-568934232

const a11yOff = Object.keys(require('eslint-plugin-jsx-a11y').rules)
    .reduce((acc, rule) => { acc[`jsx-a11y/${rule}`] = 'off'; return acc }, {})

module.exports = {
    rules: {
        ...a11yOff,
        // your rules
    },
}