终端确认ESLint是否工作最可靠:启动项目或执行npx eslint . --ext .js,.ts时,若出现红色报错、行号及规则ID(如no-unused-vars)或“✖ 3 problems”统计,则说明已生效;无输出可能因路径错误、权限不足、未安装eslint或--ext参数不匹配。

终端里怎么确认 ESLint 是否在工作
直接看终端输出最可靠。启动项目或执行构建命令后,如果 ESLint 配置正确且已启用,错误会实时出现在集成终端里,而不是只靠编辑器右下角小图标判断。
常见现象包括:
- 运行
npm run dev或npm start时,终端顶部出现红色报错,带文件路径、行号和规则 ID(如no-unused-vars) - 执行
npx eslint . --ext .js,.ts后有明确的「✖ 3 problems」统计,且每条都标出规则名 - 没报错但也不提示“no problems”,说明可能没命中任何文件——检查
--ext参数是否漏了扩展名,或当前目录下没有匹配的源码文件
为什么 eslint --init 在终端里跑完却没生成配置文件
本质是权限或路径问题,不是命令本身失效。VSCode 终端默认工作目录不一定是你认为的项目根目录,尤其当你只打开了单个文件而非整个文件夹时。
务必确认以下几点:
- 用
pwd(macOS/Linux)或cd(Windows)确认当前路径,确保它指向你想初始化 ESLint 的项目根目录 - 如果终端显示
Permission denied,说明当前用户对目标目录无写权限,eslint --init无法创建.eslintrc.js或package.json中的配置字段 - 某些 shell 环境(如 Git Bash)对 Node.js 脚本支持不稳定,可改用 PowerShell 或 CMD 重试
- 若提示
command not found: eslint,说明eslint没装在全局或本地node_modules中,需先运行npm install eslint --save-dev
终端中手动触发 Lint 却不报错,但编辑器里却标红
这是配置作用域不一致导致的典型错位。编辑器里看到的提示来自 VSCode 的 ESLint 扩展,它读取的是你打开的文件所在工作区的配置;而你在终端里执行的 eslint 命令,可能读的是另一个 node_modules、另一个 eslint 版本,甚至另一个配置文件。
快速验证方法:
- 在终端中运行
npx eslint --print-config src/index.js,它会输出实际生效的完整规则集,对照编辑器里提示的规则 ID 是否在其中 - 检查
eslint.config.js(或旧版.eslintrc.*)是否被ignorePatterns排除,或被overrides分组条件过滤掉 - VSCode 的 ESLint 扩展默认启用
eslint.experimental.useFlatConfig,如果你用的是新版扁平化配置(eslint.config.js),但终端里用的是老版本eslintCLI(v8.50+才原生支持),就会行为不一致
终端输出太长,怎么快速定位某条规则是否启用
别靠肉眼扫,用管道过滤更准。例如想确认 react-hooks/exhaustive-deps 这条规则有没有生效,直接查配置本身比等报错更高效:
npx eslint --print-config src/App.jsx | grep -A 5 -B 5 "exhaustive-deps"
注意点:
-
--print-config必须指定一个真实存在的 JS/TS 文件路径,否则会报错退出 - Mac 上用
grep -A 5 -B 5,Linux 通常没问题;Windows PowerShell 不支持grep,改用select-string -pattern "exhaustive-deps" -context 5 - 输出中若看到
"react-hooks/exhaustive-deps": "off"或完全没出现该字段,说明它当前未启用
真正容易被忽略的是:VSCode 的 ESLint 扩展和终端 CLI 可能加载不同版本的插件(比如 eslint-plugin-react-hooks),导致规则可用性不一致。不要只看名字,要核对 --print-config 输出里的 plugins 数组和具体规则定义位置。


















