关键在于配置editor.codeActionsOnSave启用自动修复、eslint.validate覆盖目标语言、项目存在生效的.eslintrc.*文件;插件需重启生效,且必须为Microsoft官方版,状态栏应显示“ESLint is running”。

VSCode 保存时自动修复 ESLint 错误,关键不在装没装插件,而在于 editor.codeActionsOnSave 是否启用、eslint.validate 是否覆盖目标语言、以及项目里有没有真正生效的 .eslintrc.* 配置文件。光装插件不配规则,等于买了扫地机器人却没装尘盒。
VSCode 插件安装后必须重启才生效
ESLint(微软官方版)、Prettier、Vetur 这三个插件装完不重启 VSCode,eslint.validate 很可能读不到 .vue 或 html 文件——尤其 Vue 项目里 template 标签报错但 JS 不报,基本就是这原因。
- 插件名必须是
ESLint(作者:Microsoft),不是eslint(小写)或其它同名插件 - 如果用的是 Vue 3 + Vite,
Vetur实际已过时,应改用Volar,此时需把eslint.options.extensions显式加上".ts"和".tsx" - 装完插件后,状态栏右下角应出现 ESLint 图标,鼠标悬停显示 “ESLint is running”;若显示 “No ESLint configuration found”,说明项目根目录缺
.eslintrc.js或.eslintrc.cjs
eslint.validate 必须显式声明 vue 和 html 语言
默认情况下,VSCode 的 ESLint 插件只检查 .js 文件。哪怕你写了 <script></script> 块, 里的属性绑定、指令语法也不会被校验——除非你在 settings.json 里明确告诉它:“这些也归我管”。
- 正确写法(支持 Vue 单文件组件):
"eslint.validate": ["javascript", "typescript", "vue", {"language": "vue", "autoFix": true}] - 错误写法:
"eslint.validate": ["javascript"]—— 此时.vue文件完全不会触发 ESLint - HTML 文件要参与校验,必须加
{"language": "html", "autoFix": true},否则里的空格、引号风格不会被修正editor.codeActionsOnSave是自动修复的开关,不是可选项很多人以为
eslint.autoFixOnSave还能用,其实从 VSCode 1.80+ 开始,这个配置项已被废弃。现在唯一有效的路径是editor.codeActionsOnSave,且必须精确匹配键名。- 必须写成:
"editor.codeActionsOnSave": { "source.fixAll.eslint": true } - 不能写成:
"source.fixAll": true(会同时触发 Prettier、TypeScript 等所有格式化器,导致冲突) - 不能写成:
"source.fixAll.eslint": "explicit"(只在手动调出“快速修复”菜单时生效,不响应保存) - 如果同时启用了 Prettier,
editor.formatOnSave必须设为false,否则 ESLint 修完分号,Prettier 立刻删掉——来回拉扯,保存后代码反而更乱
项目级
.eslintrc.*文件缺失,VSCode 插件就是摆设VSCode 的 ESLint 插件不会自己生成规则,它只是把本地 Node.js 环境里运行
npx eslint的结果,实时渲染到编辑器里。没有.eslintrc.js,就没有规则来源;没有eslint-plugin-vue,Vue 特有语法(比如v-model修饰符、defineProps类型推导)就压根不检查。- 初始化命令(推荐):
npx eslint --init→ 选 “Vue” + “TypeScript” + “Prettier” → 自动生成带extends: ['plugin:vue/recommended']的配置 - 手动补依赖(Vue 3 项目):
npm install eslint-plugin-vue @vue/eslint-config-typescript @vue/eslint-config-prettier --save-dev - 常见漏项:
parserOptions.parser没配"@typescript-eslint/parser",会导致 TSX 文件解析失败,报Cannot read property 'map' of undefined
最常被忽略的一点:VSCode 打开项目必须以**项目根目录**为工作区,而不是随便打开一个子文件夹。否则它找不到
.eslintrc.js,也读不到node_modules/eslint,所有配置都白搭。 - 必须写成:
前端入门到VUE实战笔记:立即使用
在学习笔记中,你将探索 前端 的入门与实战技巧!











