.eslintrc.js
在ESLINT 9中,配置不再表示为简单的字符串,它们是必需的,并将其与项目的配置合并。这是有道理的,我通常同意,但是当多个导入的配置相互冲突时,我遇到了麻烦。由于没有(简单/高效)在JavaScript中进行深入合并的方法,因此使用多种导入配置的建议是将它们合并在一起。但是,如果两种配置具有不同的规则,则会变得有问题。例如,回到上一个示例,包括2个React配置的最简单方法是:
export default {
extends: ['airbnb', 'prettier'],
overrides: {
{
files: ['*.jsx'],
extends: ['plugin:react/jsx-runtime', 'plugin:react-hooks/recommended'],
},
},
};
,但是,这两种配置都有不同的规则,因此最终结果是只使用钩子的规则,当我使用重复的道具或
import prettier from 'eslint-config-prettier';
import airbnb from 'eslint-config-airbnb';
import react from 'eslint-plugin-react';
import reactHooks from 'eslint-plugin-react-hooks';
export default {
prettier,
airbnb,
{
...react.configs.flat['jsx-runtime'],
...reactHooks.configs.recommended,
files: ['*.jsx'],
},
};
道具时,我不会遇到任何错误,但是当我在我违反了钩子的规则。
如何将多个外部配置包含在特定于文件夹的覆盖中,而没有一整次手动合并?不幸的是,ESLINT文档都没有解决这个非常常见的问题,但是在您的情况下,解决方案是将该部分分为多个配置对象,让Eslint为您合并:
rest
如果您发现自己有很多适用于同一集文件的部分,则可以通过它们运行
export default {
prettier,
airbnb,
{
...react.configs.flat['jsx-runtime'],
files: ['*.jsx'],
},
{
...reactHooks.configs.recommended,
files: ['*.jsx'],
},
};
以应用相似的属性:
map()