首页 > 解决方案 > 如何在我的 nx 工作区中覆盖 eslint 规则?

问题描述

如何覆盖 eslint 规则plugin:@nrwl/nx/typescript?我已经对.eslintrc.json.

"rules": {
  "@typescript-eslint/member-ordering": "warn"
},

并且在引入违反规则的演示后仍然出现错误

D:\me\sample\apps\my-app\src\app\app.component.ts
  16:3  error  Member outOfOrder should be declared before all instance method definitions  @typescript-eslint/member-ordering

✖ 1 problem (1 error, 0 warnings)

Lint errors found in the listed files.

我也尝试将规则更改添加到overrides打字稿部分。

标签: typescripteslintnrwl-nx

解决方案


无法在根级别设置它,因为您的项目.eslintrc.json将始终覆盖这些更改,因为@nrwl/nx/typescript在覆盖部分中进行了设置。

不幸的是,您必须将其设置为覆盖部分中的每个项目。

如果您有多个项目和/或需要应用多个更改,您可以将其提取到eslint-custom-overrides文件中并将其用作本extends节中的最后一个:

{
  "extends": ["../../.eslintrc.json"],
  "ignorePatterns": ["!**/*"],
  "overrides": [
    {
      "files": ["*.ts"],
      "extends": [
        "plugin:@nrwl/nx/typescript",
        "../../eslintrc-custom-overrides.json"
      ],
   },
   ...
  ],
  ...
}

eslintrc-custom-overrides.json看起来像这样:

{
  "overrides": [
    {
      "files": ["*.ts"],
      "rules": {
         "@typescript-eslint/member-ordering": "warn"
      }
    }
  ]
}

查看有关NX 问题的更多详细信息。


推荐阅读