vscode插件装完不自动生效,需检查三件事:一是项目根目录是否存在.eslintrc.js等本地配置文件;二是eslint.validate是否包含"javascript"且版本≥8.0.0;三是右下角语言模式是否为javascript、规则是否可修复及prettier与eslint配置顺序是否正确。

VSCode插件装完就生效?检查这三件事
插件不是安装完就能自动接管 JS 项目管理的,常见现象是:保存文件没格式化、console.log 不报警告、右键“Fix all”灰掉。根本原因通常是配置断层。
- 确认项目根目录存在
.eslintrc.js或.eslintrc.json—— VSCode 的 ESLint 扩展默认只读本地配置,没有它就退化为无规则状态 - 检查
eslint.validate是否包含"javascript"(不是"js"或空数组),否则扩展根本不监听 .js 文件 - 运行
npm list eslint,如果报empty或版本低于8.0.0,说明项目里没装 ESLint 运行时 —— 插件只是“遥控器”,真正干活的是本地node_modules里的包
保存时自动修复失效的典型场景
editor.codeActionsOnSave 配置看似简单,但实际触发依赖多个条件同时满足。最常被忽略的是语言模式和规则可修复性。
- 文件右下角必须显示
JavaScript(不是Plain Text或JavaScript React),否则 VSCode 不会调用 ESLint 的修复逻辑 - 只有标记为
"fixable"的规则才能自动修复,比如semi、quotes可以,但no-console默认是"warn"级别且不可修复,即使配了source.fixAll.eslint也无效 - 如果项目用了
eslint.config.js(新式配置),旧版插件可能不识别,需升级 ESLint 扩展到 v3.0+ 并确保 VSCode 版本 ≥ 1.88
Prettier 和 ESLint 规则打架怎么办
两者共存时,prettier 在 extends 里位置错了就会覆盖 ESLint 的语义检查。真实错误不是“格式不对”,而是“ESLint 根本没机会报错”。
-
"prettier"必须放在extends数组末尾,例如:["eslint:recommended", "plugin:react/recommended", "prettier"]—— 放前面会导致推荐规则被禁用 - 不要同时启用
editor.formatOnSave和source.fixAll.eslint且都设为 true,Prettier 负责格式,ESLint 负责逻辑,混用会触发两次写入,偶尔导致光标跳动或部分代码被意外重排 - 验证是否真冲突:删掉
"prettier",重启 VSCode,手动运行npx eslint --fix src/,如果能修好但编辑器里不动,就是 Prettier 拦截了 ESLint 的格式动作
团队共享配置为什么总不同步
很多人把 .eslintrc 提交了,却忘了 .vscode/settings.json 是用户级配置,默认不进 Git。结果新人 clone 项目后一切照旧,所谓“统一规范”形同虚设。
-
.vscode/settings.json必须提交,并明确写入"editor.defaultFormatter": "esbenp.prettier-vscode"和"editor.codeActionsOnSave"—— 这是强制编辑器行为的唯一手段 - 避免在用户设置(Settings UI)里配全局 formatter,不同项目可能用不同风格,全局设置会污染其他仓库
- 如果用
eslint-plugin-import等插件,除了package.json里装依赖,还得在.eslintrc的plugins数组里显式声明,否则规则加载失败但无提示










