vue 2项目必须安装vetur ≤0.34.1,因0.35.0起仅适配vue 3;离线安装需确认vsix含vetur-server二进制且vs code版本不高于1.79.2以保证lsp兼容。

Vue 2项目必须装 Vetur ≤0.34.1,别下最新版
Vue 2 项目用不了 Volar,只能靠 Vetur;但 Vetur 从 0.35.0 起彻底放弃 Vue 2 支持,装了也白装——.vue 文件变纯文本,<template></template> 无校验,data() 返回对象属性不补全。
- 去 VS Code Marketplace 搜索
Vetur→ 点击 “Version History” → 找到0.34.1或更早版本 → 点击 “Download Extension” - 下载文件名应为类似
vetur-0.34.1.vsix,不是自动推荐的0.36.x - 离线安装后,用命令验证是否含语言服务:
unzip -l your-vetur-0.34.1.vsix | grep server,必须看到node_modules/vetur-server/bin/vetur-server
Vue 3项目必须禁用Vetur、启用Volar
Volar 是 Vue 3 唯一能解析 defineProps/defineEmits 类型、支持模板内跳转和组件名补全的插件。Vetur 和 Volar 同时启用会冲突,补全直接失效。
- 先在设置里搜
vetur.enable,关掉它;再确认没有"files.associations": { "*.vue": "html" }这类错误映射 - 打开任意
.vue文件,右下角语言模式必须显示为Vue(不是HTML或Plain Text) - 按
Ctrl+Shift+P→ 输入Developer: Toggle Developer Tools→ Console 里搜volar,看到Starting Volar server才算真正启动
离线环境还要配对本地依赖和 TS 类型
插件只是壳,真正在后台干活的是项目里的 eslint、@volar/vue-language-server 和 tsconfig.json 配置。离线时漏一个,补全就断链。
- Vue 2 项目:运行
npm install eslint@8.57.0 @vue/eslint-config-standard@7.1.0 --save-dev,再确保 VS Code 设置里"eslint.enable": true,重启整个窗口 - Vue 3 项目:运行
npm install --save-dev @volar/vue-language-server,并在tsconfig.json的compilerOptions.types中加入"vue" - 如果用了
defineProps(),还得加"skipLibCheck": true,否则node_modules/vue类型可能报错
VS Code 版本太高,Vetur 直接不兼容
VS Code 1.80+ 已移除旧版 LSP 协议支持,而 Vetur 0.34.1 依赖的就是这套老协议。装了也起不来,.vue 文件始终识别为文本——这不是配置问题,是底层协议不匹配。
- 离线机若已装 VS Code 1.85,降级到
1.79.2是唯一可靠方案(这是最后一个稳定支持 Vetur 的版本) - 别试图用
settings.json强行绕过,LSP 层没握手成功,所有上层配置都无效 - 想升 VS Code 又要保 Vue 2?只能重写项目迁移到 Vue 3 + Volar,没中间路线
tsconfig.json 里漏了 "types": ["vue"]——这三个点卡住,90% 的“没反应”就出在这儿。前端入门到VUE实战笔记:立即使用
在学习笔记中,你将探索 前端 的入门与实战技巧!











