【问题标题】:Eslint - configured rules locationEslint - 配置规则位置
【发布时间】:2022-01-13 06:02:09
【问题描述】:

我正在尝试为开箱即用的 Nx 工作区找到默认 eslint 规则的位置。

我看到项目根目录下的 eslintrc 文件中使用了一些插件:

{
  "root": true,
  "ignorePatterns": ["**/*"],
  "plugins": ["@nrwl/nx"],
  "overrides": [
    {
      "files": ["*.ts", "*.tsx", "*.js", "*.jsx"],
      "rules": {
        "@nrwl/nx/enforce-module-boundaries": [
          "error",
          {
            "enforceBuildableLibDependency": true,
            "allow": [],
            "depConstraints": [
              {
                "sourceTag": "*",
                "onlyDependOnLibsWithTags": ["*"]
              }
            ]
          }
        ]
      }
    },
    {
      "files": ["*.ts", "*.tsx"],
      "extends": ["plugin:@nrwl/nx/typescript"],
      "rules": {}
    },
    {
      "files": ["*.js", "*.jsx"],
      "extends": ["plugin:@nrwl/nx/javascript"],
      "rules": {}
    }
  ]
}

谁能告诉我在哪里可以看到启用的完整规则列表?

【问题讨论】:

标签: angular eslint nrwl-nx typescript-eslint nrwl


【解决方案1】:

规则来自 npm 包@nrwl/eslint-plugin-nx。这是 plugins 列表中包含的包的名称,不带“eslint-plugin-”,在解析插件位置时由 ESLint 自动添加。

点击 monorepo https://github.com/nrwl/nx 的链接,并深入“packages”文件夹,我们会发现 eslint-plugin-nx 的来源。现在,查看package.json,我们看到main 模块指向"./src/index.js",它是由Typescript 从"./src/index.ts" 自动生成的。此 .ts 文件从子文件夹“config”和“rules”中的模块导入定义并将它们映射到导出。因此,您的 .eslinrc 文件中包含的位置的来源如下:

ESLint 通过合并 extends 部分(.js.ts)中的规则定义,然后应用配置的 rules 定义(.js.ts),最后是规则@nrwl/nx/enforce-module-boundaries 在 .eslintrc 文件中定义(另请注意 overrides 对应于 .tsx)。

【讨论】:

  • 绝妙的答案 - 谢谢先生!
  • 乐于助人:)
猜你喜欢
  • 2019-11-10
  • 2017-07-24
  • 2017-12-04
  • 1970-01-01
  • 2021-01-01
  • 2017-09-11
  • 2021-12-27
  • 2017-08-11
  • 2021-02-23
相关资源
最近更新 更多