我确定以前曾有人问过,但是我发现很难找到一个好的解决方案。

问题描述 投票:0回答:0

.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()

javascript eslint
最新问题
© www.soinside.com 2019 - 2025. All rights reserved.