如何删除 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 配置给您一个错误):
- 在
extends
中搜索并删除(如果有)plugin:jsx-a11y/recommended
。
- 在
plugins
中搜索并删除:jsx-a11y
.
- 然后在
rules
中删除所有涉及jsx-a11y
的规则(例如:"jsx-a11y/rule-name": 2
)。
- 终于可以从项目中删除它了:
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
},
}
我为我的 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 配置给您一个错误):
- 在
extends
中搜索并删除(如果有)plugin:jsx-a11y/recommended
。 - 在
plugins
中搜索并删除:jsx-a11y
. - 然后在
rules
中删除所有涉及jsx-a11y
的规则(例如:"jsx-a11y/rule-name": 2
)。 - 终于可以从项目中删除它了:
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
},
}