ESLint插件需手动配置才能自动修复:启用editor.codeActionsOnSave并设"source.fixAll.eslint": true,且仅支持标记“Fixable”的规则;项目配置须正确识别,插件需调用本地eslint包。

ESLint插件本身不会自动修复代码——必须手动触发或配置保存时自动执行,且修复能力受限于规则是否支持 fix 选项。
为什么保存后没自动修复?检查 editor.codeActionsOnSave 配置
VSCode 默认关闭自动修复,需显式启用。常见错误是只装了 ESLint 插件却没配这个设置。
- 打开 VSCode 设置(
Ctrl+,或Cmd+,),搜索codeActionsOnSave - 找到
Editor › Code Actions On Save,点击Edit in settings.json - 确保包含以下项(注意:不是
eslint.enable,也不是eslint.packageManager):
"editor.codeActionsOnSave": {
"source.fixAll.eslint": true
}
如果项目用的是 Prettier + ESLint 混合规则,还要确认没有冲突项(如 "source.fixAll": true 会尝试调所有 linter,可能报错)。
eslint --fix 能修什么?看规则文档里的 “Fixable” 标记
不是所有 ESLint 规则都支持自动修复。比如 no-console 可以删掉 console.log,但 complexity(圈复杂度)这种只能报错,不能改逻辑。
立即学习“前端免费学习笔记(深入)”;
- 打开 ESLint 官方规则页,查具体规则(如 no-unused-vars),右上角标有 ✅ Fixable 才能被自动修
- 常用可修复规则:
semi、quotes、indent、no-trailing-spaces、no-unused-vars(部分情况) - 不可修复规则:
react-hooks/exhaustive-deps(需人工检查依赖)、no-alert(删alert()算修复,但替换成 toast 就不行)
项目级配置不生效?优先检查 .eslintrc.* 和 package.json 中的 eslintConfig
VSCode ESLint 插件默认读取项目根目录下的配置文件。如果没生效,大概率是配置没被识别,而不是插件坏了。
- 确认配置文件存在且命名正确:
.eslintrc.js、.eslintrc.cjs、.eslintrc.json或package.json里的eslintConfig字段 - 运行
npx eslint --print-config src/App.js(替换为任意源文件路径),看输出是否含预期规则和fixable值 - 如果用 TypeScript,确保已安装
@typescript-eslint/eslint-plugin且配置中启用了对应 parser(parser: '@typescript-eslint/parser') - 若用
eslint.config.js(ESLint v8.52+ 新格式),VSCode 插件需更新到 v2.4.10+ 才支持
保存时卡住或报 Failed to load config?多半是 Node.js 版本或 node_modules 路径问题
ESLint 插件会在当前工作区启动一个子进程调用本地 eslint 包。路径不对或模块缺失就会静默失败或报错。
- 打开 VSCode 终端,运行
which eslint(macOS/Linux)或where eslint(Windows),确认输出的是项目内node_modules/.bin/eslint - 如果指向全局安装的 ESLint,插件可能读不到项目里自定义的插件(如
eslint-plugin-vue) - 重启 VSCode 后按
Ctrl+Shift+P→ 输入Developer: Toggle Developer Tools,在 Console 里搜ESLint,常能看到真实错误堆栈 - 某些 monorepo 场景下,需在
.vscode/settings.json显式指定eslint.workingDirectories
真正麻烦的从来不是“怎么开自动修复”,而是当它不工作时,你得知道去哪看日志、怎么验证 ESLint 是否真被项目认可——这些细节藏在进程通信和模块解析里,不是点几下设置就能绕过去的。


















