ESlint通过嵌套目录覆盖规则

时间:2020-05-20 20:46:58

标签: eslint eslintrc

我想禁用嵌套目录内所有文件的规则。我发现仅针对确切路径或文件扩展名的示例。但这不是我想要的。

我们将其用于共享配置,并且不知道该目录在哪里。我们有很多。

我正在尝试这样的配置:

{
  overrides: [
    {
      files: [
        '**/test/**/*',
      ],
      rules: {
        "import/no-extraneous-dependencies": "off"
      }
    },
  ],
}

但是**/test/**/*之类的问题以及其他许多问题都无法解决。

有人可以帮助实现这个目标吗?

1 个答案:

答案 0 :(得分:0)

上面的代码应该可以工作。

你是如何测试这个的?如果是 VSCode 之类的扩展,您可能需要刷新内容以查看加载的最新定义。

如果您使用的是像 esprint 这样的 eslint 服务,您还需要重新启动它以获取最新的定义。

缓存 确保 eslint 未配置为缓存结果,以避免在调试时缓存 bust。 eslint docs

这是具有多个覆盖的本机应用程序的示例

module.exports = {
  ...baseConfig,
  overrides: [
    typescriptOverrides,
    e2eOverrides,
    themeOverrides,
    {
      files: ['**/*.style.js'],
      rules: {
        'sort-keys': [
          'error',
          'asc',
          {
            caseSensitive: true,
            natural: true,
          },
        ],
      },
    },
    {
      files: ['**/*.test.js'],
      rules: {
        'arrow-body-style': 'off',
      },
    },
  ],
};

调试 glob 匹配器

  1. 在调试模式下运行 eslint 并查看正在运行的所有文件示例 DEBUG=eslint:cli-engine npx eslint src/**/*.test.js
  2. 您可以通过运行 ls 命令来测试您的 glob 模式。示例:ls ./src/**/*.test.js 将返回所有文件或“未找到匹配项”。