可行,但必须满足三个前提:插件装对(如volar启用takeovermode、禁用vetur)、配置写准(eslint.validate含"vue"、source.fixall.eslint为true)、项目环境就位(本地安装eslint-plugin-vue、存在有效tsconfig.json)。

VSCode 保存时自动修复 Vue 文件中的语法错误和风格问题,是可行的,但必须满足三个前提:插件装对、配置写准、项目环境就位。缺一不可。
为什么 editor.codeActionsOnSave 配了却没反应
常见现象是保存后 ESLint 不报错也不修,或者只修了 JS 部分,.vue 模板里 v-model 拼错成 v-moldel 这类问题完全没提示。根本原因不是设置漏了,而是语言服务没真正接管:
- Volar 必须启用
takeOverMode,否则 TypeScript 语言服务器不识别<script setup></script>中的类型,ESLint 也就拿不到完整 AST -
eslint.validate必须显式包含"vue",默认只校验javascript和typescript - 项目本地必须安装
eslint-plugin-vue,全局安装的 ESLint 插件 VSCode 通常不认 - 如果同时启用了 Prettier 的
formatOnSave和 ESLint 的fixAll,两者可能打架——建议关掉 Prettier 的自动格式化,让 ESLint 统一管“语法 + 格式”
volar.takeOverMode 开启后模板跳转失效或报错
这是 Volar 和旧插件冲突最典型的症状。Volar 的 takeOver 模式会接管 TS 语言服务,一旦 Vetur 还在运行,就会出现“无法解析 defineProps 类型”“ref 变量跳转到 node_modules 而非源码”等问题:

