vscode中eslint插件无波浪线、不自动修复,主因是配置未连通:插件默认调用全局eslint而非项目本地版本,需确认package.json存在且已npm install,设置eslint.packagemanager为对应包管理器,并使用.eslintrc.js(module.exports导出)、正确配置eslint.validate和editor.codeactionsonsave。

VSCode 里 ESLint 插件装了但没波浪线、保存也不修代码?问题几乎都出在「配置没连通」——不是插件坏了,而是它根本没找到项目里的 eslint 包,或压根没读到有效的规则配置。
为什么 ESLint 在 VSCode 里完全不报错
最常见原因是:VSCode 默认尝试用全局 eslint,而你的项目用的是本地 node_modules/.bin/eslint。插件启动时找不到可执行文件,就静默退出,连错误都不报。
- 检查右下角状态栏,点 ESLint 图标——如果显示
Using globally installed ESLint,说明没走本地 - 确认项目根目录有
package.json,且已运行过npm install(或pnpm install) - 在终端执行
npx eslint --version,能正常输出版本号才算本地安装成功 - 设置
eslint.packageManager为"npm"或"pnpm"(和你项目一致),否则插件可能找不到node_modules
配置文件不生效的三个关键点
.eslintrc.js 放对位置 ≠ 被正确加载。VSCode 插件只认它明确支持的格式,并严格按路径查找逻辑工作。
微软正式发布 Visual Studio Code 1.118 版本 。本次更新重点强化了 AI 开发体验与企业管理能力,其中最引人注目的是新增 Copilot CLI 远程控制功能,允许开发者通过手机或网页远程监控和接管 AI 会话 。同时,为了提高 AI 的运行性价比,新版本优化了令牌缓存策略以降低成本 。此外,1.118 版还引入了 Chronicle 本地历史追踪、TypeScript 7.0 支持以及更严格的企业级访问管控 。
- 优先用
.eslintrc.js或.eslintrc.cjs,避免eslint.config.js(除非插件版本 ≥ v2.4.10 且显式配eslint.options.configFile) -
.eslintrc.js必须用module.exports = {...},写export default会直接加载失败 - TS/JSX 文件不校验?大概率是
parser没配:@typescript-eslint/parser(TS)或babel-eslint(旧 JSX),且eslint.validate里必须包含"typescriptreact"或"vue"
保存时自动修复(fix on save)怎么配才不翻车
别用已废弃的 eslint.autoFixOnSave,它和 Prettier 冲突时会删代码。新版只认 editor.codeActionsOnSave,且必须精确指定作用域。
- 只让 ESLint 修自己的规则:
"source.fixAll.eslint": true;别写"source.fixAll": true(会调所有 linter,包括 Prettier,大概率报错) - 确保
editor.formatOnSave是false,否则 ESLint 和 Prettier 双格式化器打架 - 可修复规则有限——
semi、quotes、indent行,但no-console只删console.log,react-hooks/exhaustive-deps完全不修 - 想批量修复整个项目?终端跑
npx eslint --fix .,比狂按 Ctrl+S 稳定得多
多语言/多包项目(monorepo)的坑
单个 settings.json 配置搞不定子包各自规则,插件默认只查打开文件所在目录的上层,不会跨包扫描。
- 设
eslint.workingDirectories为[{ "mode": "auto" }],让插件自动探测各子包下的.eslintrc.* - Vue/TSX 文件飘红但无提示?检查
eslint.validate是否漏掉"vue"或"typescriptreact"——它不识别"*.vue"这种 glob 写法 - 状态栏 ESLint 图标变灰?重启 VSCode 或手动
Developer: Reload Window,插件有时缓存旧路径
真正卡住人的从来不是某条规则怎么写,而是插件根本没启动起来——先让 npx eslint . 在终端跑通,再调 VSCode 设置,顺序错了,后面全白搭。










