繁体   English   中英

在覆盖期间组合 ESLint 规则

[英]Combining ESLint rules during an override

我正在处理一个混合了 TypeScript 和 JavaScript 文件的项目,我正在尝试为它们设置 linting 规则。 我正在使用 ESLint 对 JS 文件进行 lint,并使用typescript eslint 插件对 typescript 文件进行 lint。 由于我要添加 linting 的代码库相当大,我不得不关闭一些 JS 和 TS 的规则。 当我尝试为 ESLint 创建配置文件时,这被证明是一个小问题。 在我的配置文件中。 我有 JS 文件的主要规则集,然后为 *.ts 文件创建了一个覆盖部分,我可以在其中使用 typescript lint 规则。 我的配置文件如下所示(规则部分只是代表性的)。

{
    "extends": "eslint:recommended",
    "rules": {
        "no-unused-vars": "off",
        "no-undef": "error",
        "max-classes-per-file": "off"
    },
    "env": {
        "es6": true,
        "browser": true
    },
    "parserOptions": {
        "ecmaVersion": 10
    },
    "overrides": [
        {
            "files": [
                "*.ts"
            ],
            "extends": [
                "eslint:recommended",
                "plugin:@typescript-eslint/recommended"
            ],
            "rules": {
                "@typescript-eslint/no-unsafe-argument": "off",
                "@typescript-eslint/no-unsafe-member-access": "off"
            },
            "parserOptions": {
                "project": "tsconfig.json"
            }
        }
    ]
}

我必须为 TS 文件创建一个覆盖部分,因为并非所有 JS 文件都包含在 tsconfig.json 中,这在尝试通过相同配置对所有 JS 和 TS 文件进行 lint 时出现问题。

我现在遇到的问题是,为 TS 文件创建覆盖部分现在完全忽略了我在 JS 部分所做的规则覆盖,我最终不得不在 JS 配置中配置每个 ESLint 规则,我为TS 文件。 有没有一种方法可以在覆盖中组合父部分的规则,以便它只是添加额外的规则而不是完全替换它们?

您可以为 *.js 和 *.ts 文件添加第二个覆盖,并在那里禁用规则,即:


{
    "extends": "eslint:recommended",
    "rules": {
        "no-undef": "error"
    },
    "env": {
        "es6": true,
        "browser": true
    },
    "parserOptions": {
        "ecmaVersion": 10
    },
    "overrides": [
        {
            "files": [
                "*.ts"
            ],
            "extends": [
                "eslint:recommended",
                "plugin:@typescript-eslint/recommended"
            ],
            "rules": {
                "@typescript-eslint/no-unsafe-argument": "off",
                "@typescript-eslint/no-unsafe-member-access": "off"
            },
            "parserOptions": {
                "project": "tsconfig.json"
            }
        },
        {
            "files": [
                "*.js",
                "*.ts"
            ],
            "rules": {
                "no-unused-vars": "off",
                "max-classes-per-file": "off"
            }
        }
    ]
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM