要彻底禁用 ESLint 自动修复,需在 settings.json 中移除或设为 "never" 的 source.fixAll.eslint 项,并确保 editor.codeActionsOnSave 为对象;若连错误提示都不需,设 eslint.enable: false;注意 Prettier 等插件可能造成干扰。

怎么关掉保存时自动修复
直接删掉或注释掉 editor.codeActionsOnSave 里和 ESLint 有关的项就行。最常见的是把 "source.fixAll.eslint": true 这行去掉,或者整个对象设为 {"source.fixAll.eslint": "never"}。
别只关 editor.formatOnSave——它控制格式化,不是 ESLint 修复;关了它不影响 codeActionsOnSave 的行为。
-
editor.codeActionsOnSave必须是对象,不能写成false或null,否则 VSCode 会忽略 - 如果同时开了 Prettier,建议也关掉
"source.fixAll": true(这个是通用开关,会触发所有 linter,容易冲突) - 想保留其他语言的自动修复(比如 TypeScript),可以用语言专属配置:
"[typescript]": { "editor.codeActionsOnSave": { "source.fixAll.eslint": "never" } }
怎么彻底禁用 ESLint 检查
如果连报错都不想看到,就得关掉 ESLint 插件本身的启用状态。不是卸载,而是设 eslint.enable 为 false。
注意:这个设置只影响当前工作区或用户级设置,不影响其他项目。如果你在多根工作区里,得确认改的是正确层级的 settings.json。
-
eslint.enable: false后,右下角 ESLint 状态图标会消失,也不再扫描文件 - 如果项目里还装着
eslint-plugin-vue或@typescript-eslint,它们也会一并失效 - 临时禁用更简单:按
Ctrl+Shift+P(Win/Linux)或Cmd+Shift+P(macOS),输入ESLint: Disable,选中即可
为什么关了还是有波浪线或修复提示
大概率是别的插件在干活。Prettier、Vetur、TypeScript 自带的检查器都可能显示类似 ESLint 的红线或提供 Quick Fix。
先看报错信息左下角的小图标——如果是 Prettier 或 typescript,就不是 ESLint 的问题。
- 检查
editor.defaultFormatter是否指向了 Prettier,它可能在保存时悄悄格式化 -
eslint.validate如果还开着,即使codeActionsOnSave关了,错误仍会标出来,只是不自动修 - 某些 Vue 文件里
<script setup></script>块被 Vetur 或 Vue Language Features 处理,跟 ESLint 无关
关掉之后要注意什么
关掉自动修复不等于规则失效。CI/CD 流程、npx eslint --fix 命令、Git hooks 还在跑,本地没反应不代表代码真合规。
尤其多人协作项目,关掉本地修复容易让不符合规则的代码直接提交——建议至少保留 eslint.enable: true,只关 codeActionsOnSave,靠手动 Ctrl+. 触发修复更可控。


















