vue2项目应选vetur或volar:纯js老项目用vetur,含ts或需升级则配vuecompileroptions.target: 2后用volar;二者不可共存,须禁用另一个,并配置files.associations和emmet.syntaxprofiles确保.vue文件正确识别。

VSCode 默认不识别 .vue 文件,装 Vetur 是最直接有效的方案;但 Vue2 项目现在更推荐用 Volar + 兼容模式,尤其当你混用 TypeScript 或未来要升级时。
为什么 Vetur 在 Vue2 项目里突然不亮了?
不是你装错了,而是 VSCode 启用了语言服务接管(Take Over Mode)冲突,或者 Volar 已自动激活并“抢”了 .vue 文件的控制权。Vetur 和 Volar 不能共存——Volar 会禁用 Vetur 的语法支持,即使 Vetur 没卸载,它也不再生效。
- 打开一个
.vue文件,右下角状态栏看语言模式:如果显示 “Vue (Volar)” 就说明 Volar 已接管 - 检查扩展面板里
Vetur是否处于“已启用但被绕过”状态(灰色图标+提示“已被其他扩展提供语言功能”) - Vue2 项目若没配
vueCompilerOptions.target: 2,Volar 可能默认按 Vue3 解析,导致v-model.sync、filters等语法标红或无提示
Vue2 项目该装 Vetur 还是 Volar?
取决于你是否需要长期维护和演进。Vetur 功能稳定、配置简单,适合纯 JS + Vue2 的老项目;Volar 支持更好、性能更强,且 Vue 官方已明确主推,Vue2 项目只需加一行配置就能用。
- 选 Vetur:只开发 Vue2、不用 TS、不打算升级 → 安装后重启 VSCode 即可,无需额外配置
- 选 Volar:项目含 TS、用 Composition API 插件(如
@vue/composition-api)、或预留升级路径 → 必须在jsconfig.json或tsconfig.json中添加:{ "vueCompilerOptions": { "target": 2 } } - 无论选哪个,务必禁用另一个:在扩展列表中对
Vetur或Volar点击“禁用”,避免解析冲突
关键配置项:让模板和 script 区域真正高亮
光装插件不够,VSCode 需要知道怎么把 .vue 文件拆解成 HTML/JS/CSS 三块来处理。Vetur 和 Volar 都依赖 files.associations 和 emmet.syntaxProfiles 来识别语法上下文。
- 在
settings.json中加这两段(Vetur/Volar 均适用):"files.associations": { "*.vue": "vue" },<br>"emmet.syntaxProfiles": { "vue-html": "html", "vue": "html" } - 如果 script 区域仍是纯文本色(没 JS 高亮),检查是否误设了
"files.associations": { "*.js": "javascriptreact" }—— 这会让 Vue 的<script></script>被当成 JSX 解析,删掉或限定范围 - Volar 用户额外确认是否启用了
Volar: Take Over Mode(设置中搜该关键词),启用后才能获得完整 SFC 支持
常见报错和对应解法
遇到标红、无提示、格式化失效,大概率不是插件问题,而是配置断层或版本错位。
-
Property 'xxx' does not exist on type 'CombinedVueInstance':TS 类型推导失败 → 检查shims-vue.d.ts是否存在,以及是否在tsconfig.json的include里包含它 -
Failed to resolve component: xxx(在 template 中标红):Volar 未正确识别components注册 → 确保组件名首字母大写,且注册写法为components: { Xxx },不是components: { xxx } - 保存后没自动格式化 → 检查
editor.formatOnSave是否为true,并确认vetur.format.defaultFormatter.js(Vetur)或editor.defaultFormatter(Volar)指向了可用 formatter
Vue2 的语法糖和 Options API 表面简单,但类型系统和语言服务的适配比 Vue3 更脆弱——配置项少写一个逗号、路径多一层 node_modules、甚至 VSCode 缓存没清,都可能导致高亮中断。别跳过验证步骤,尤其是改完 jsconfig.json 后记得重启窗口(Ctrl+Shift+P → “Developer: Reload Window”)。
前端入门到VUE实战笔记:立即使用
在学习笔记中,你将探索 前端 的入门与实战技巧!











