版本

调试你的配置

ESLint 基于你的配置文件和命令行选项,为每个要进行 lint 的文件创建一个配置。配置文件越大,就越难确定为什么文件没有按预期进行 lint。为了帮助调试你的配置,ESLint 提供了几个工具。

在调试模式下运行 CLI

使用场景: 你不确定是否正在读取正确的配置文件。如果你在同一个项目中有多个配置文件,可能会发生这种情况。

操作方法: 使用 --debug 命令行标志运行 ESLint,并传递要检查的文件,像这样

npm

npx eslint --debug file.js 

yarn

yarn dlx eslint --debug file.js 

pnpm

pnpm dlx eslint --debug file.js 

bun

bunx eslint --debug file.js 

这会将 ESLint 的所有调试信息输出到控制台。你应该将此输出复制到一个文件,然后搜索 eslint.config.js 以查看加载了哪个文件。以下是一些示例输出

eslint:eslint Using file patterns: bin/eslint.js +0ms
eslint:eslint Searching for eslint.config.js +0ms
eslint:eslint Loading config from C:\Users\nzakas\projects\eslint\eslint\eslint.config.js +5ms
eslint:eslint Config file URL is file:///C:/Users/nzakas/projects/eslint/eslint/eslint.config.js +0ms

使用场景: 你不确定为什么 lint 没有产生预期的结果,可能是因为你的规则配置似乎没有被遵守,或者使用了错误的语言选项。

操作方法: 使用 --print-config 命令行标志运行 ESLint,并传递要检查的文件,像这样

npm

npx eslint --print-config file.js 

yarn

yarn dlx eslint --print-config file.js 

pnpm

pnpm dlx eslint --print-config file.js 

bun

bunx eslint --print-config file.js 

这将输出文件计算配置的 JSON 表示,例如

{
    "linterOptions": {
        "reportUnusedDisableDirectives": 1
    },
    "language": "@/js",
    "languageOptions": {
        "sourceType": "module",
        "ecmaVersion": "latest"
    },
    "plugins": [
        "@"
    ],
    "rules": {
        "prefer-const": 2
    }
}

使用配置检查器

使用场景: 你不确定配置文件中的某些配置对象是否与给定的文件名匹配。

操作方法: 使用 --inspect-config 命令行标志运行 ESLint,并传递要检查的文件,像这样

npm

npx eslint --inspect-config 

yarn

yarn dlx eslint --inspect-config 

pnpm

pnpm dlx eslint --inspect-config 

bun

bunx eslint --inspect-config 

这将通过安装和启动 @eslint/config-inspector 来启动配置检查器。然后你可以输入有疑问的文件名,以查看将应用哪些配置对象。

Config inspector screenshot showing which config objects match index.js

配置检查器还会显示规则何时被弃用、你正在使用的可用规则数量等等。

更改语言