ESLint:忽略被全局模式排除的子目录

ESLint: unignore subdirectory which is excluded by global pattern

给定一个项目结构如下:

main
  ∟ dir1
      ∟ component-a.ts
      ∟ component-a.spec.ts
      ∟ component-b.ts
      ∟ component-b.spec.ts
  ∟ dir2
      ∟ component-c.ts
      ∟ component-c.spec.ts
  ∟ dir3
      ∟ subdir
          ∟ component-d.ts
          ∟ component-d.spec.ts

我如何排除main/dir3/中的所有spec文件?

通过排除 *.spec.ts 模式,我无法重新包含内部目录,除非我在其中创建一个 .eslintrc.json 文件,但我不想复制整个目录规则集。

我也尝试过将排除模式更改为 **/!(dir3)/**/*.spec.ts 之类的内容,但这似乎不起作用。

我目前的配置如下:

{
  "root": true,
  "ignorePatterns": [...],
  ...
  "overrides": [
    {
      "files": ["*.ts"],
      "excludedFiles": [
        "*.spec.ts"
      ],
      "rules": {...}
    }
  ]
}

您可以使用

.eslintignore

文件内容如下:

main/*
!main/dir3

这里有关于此方法更详细的说明:.gitignore exclude folder but include specific subfolder