ESLint 平面配置(TS) - 它扫描未包含的文件

问题描述 投票:0回答:1

我将 ESLint 与打字稿结合使用,并编写了如下所示的

eslint.config.mjs

import importPlugin from "eslint-plugin-import";
import js from "@eslint/js";
import ts from 'typescript-eslint';

export default ts.config({
    files: ["src/**/*.ts"],
    extends: [
        js.configs.recommended,
        ...ts.configs.recommended,
        importPlugin.flatConfigs.recommended,
        importPlugin.flatConfigs.typescript,
    ],

    languageOptions: {
        ecmaVersion: 5,
        sourceType: "script",

        parserOptions: {
            tsconfigRootDir: ".",
            project: ["./tsconfig.json"],
        },
    },

    rules: {/* omitted here because it's so long */}
});

使用此配置运行

eslint .
会导致以下错误:

<PROJECT-ROOT>/built/index.js
  <row>:<col>  error    Definition for rule '@typescript-eslint/no-unnecessary-condition' was not found           @typescript-eslint/no-unnecessary-condition
  <row>:<col>  warning  Unused eslint-disable directive (no problems were reported from 'no-constant-condition')

(and non-problematic warnings for src/**/*.ts)

问题是它的 linting

./built/index.js
未包含在配置中的
files
字段中。 它的值是
["src/**/*.ts"]
并且应该意味着 ESLint 应该只扫描
.ts
文件夹中的
src
文件。

错误消息本身是可以理解的,因为 ESLint 正在扫描

.js
文件,而
@typescript-eslint/no-unnecessary-condition
不用于此目的。

附加信息:该项目在

.js
.mjs
之外有一些
./src
./built
文件,并且它们似乎没有被扫描。

附加信息2:添加

ignores: ["built/"]
不起作用。
"built/*"
"built/**/*"
"built/index.js"
结果相同。

eslint typescript-eslint eslint-flat-config
1个回答
0
投票

来自 https://eslint.org/docs/latest/use/configure/configuration-files#specifying-files-and-ignores

您可以使用

files
ignores
的组合来确定配置对象应应用到哪些文件以及不应用到哪些文件。默认情况下,ESLint 会检查与模式
**/*.js
**/*.cjs
**/*.mjs
匹配的文件。这些文件始终匹配,除非您使用 globalignores 显式排除它们。

export default ts.config(
  {
    ignores: ["**/*.js"]
  }
  {
    files: ["src/**/*.ts"],
    // ...
  }
);
© www.soinside.com 2019 - 2024. All rights reserved.