Vue 3 项目 VSCode 智能提示失效主因是 Volar 与 Vetur 冲突或语言模式错误;需禁用 Vetur、启用 Volar、右下角手动选“Vue”语言模式、配置 files.associations 和 experimentalScriptSetupSFCMode,并确保 tsconfig.json 含 "vue" 类型及项目有正确 vue 依赖。

Vue 3 项目里 VSCode 智能提示不工作,大概率不是插件没装,而是 Volar 和 Vetur 冲突了,或者语言模式没切对。
确认当前用的是 Volar 而不是 Vetur
Volar 是 Vue 官方推荐的 Vue 3 语言服务器,Vetur 已停止维护,两者共存会导致 template 补全失效、ref() 类型推导丢失、defineProps 提示空白等问题。
- 打开 VSCode 扩展面板(
Ctrl+Shift+X),禁用所有带 “Vetur” 字样的扩展,包括Vetur、Vetur Pack等 - 确保已安装
Vue Language Features (Volar)和TypeScript Vue Plugin (Volar)(后者专用于.vue中的 TS 支持) - 重启 VSCode,打开任意
.vue文件,右下角状态栏应显示 “Vue” 而非 “Vetur” 或 “HTML”
检查 .vue 文件是否被识别为 Vue 语言模式
即使装了 Volar,VSCode 仍可能把 .vue 当作纯文本或 HTML 处理,导致 script setup 区域无类型提示、template 中 v-if 不补全。
- 打开一个
.vue文件,点击右下角语言标识(如 “Plain Text” 或 “HTML”) - 选择 “Vue” —— 注意不是 “Vue HTML” 或 “Vue (Vetur)”
- 如果列表里没有 “Vue”,说明 Volar 没加载成功,可尝试在命令面板(
Ctrl+Shift+P)运行Volar: Restart Vue Server - 也可在项目根目录
.vscode/settings.json中强制关联:"files.associations": { "*.vue": "vue" }
启用 script setup 的完整支持
<script setup> 是 Vue 3 默认语法,但 Volar 默认可能未完全激活其响应式推导能力,尤其涉及 defineProps、defineEmits 或组合式 API 工具函数时。
递归分析 Vue 项目组件依赖,从入口文件生成组件层级图,支持 Vue 2/3,输出组件名、文件路径和属性。适用于分析组件结构、排查依赖或了解项目架构。
立即学习“前端免费学习笔记(深入)”;
- 在
.vscode/settings.json中添加:"vue.preferences.experimentalScriptSetupSFCMode": "enabled" - 确保项目使用的是 Vue 3.3+(旧版对
defineOptions、泛型 props 等支持不全) - 如果用了 TypeScript,确认
tsconfig.json中"compilerOptions.types"包含"vue",否则ref返回值类型会变成any
常见干扰项:ESLint / Prettier 配置误伤提示
某些 ESLint 规则(如 vue/multi-word-component-names)或 Prettier 的格式化时机,会让编辑器在输入中途触发校验,造成补全弹窗闪退或延迟。
- 临时关闭 ESLint:在设置中设
"eslint.enable": false,观察提示是否恢复,确认是否为冲突源 - 避免在
settings.json中同时开启vetur.validation.script(Vetur 配置项),它对 Volar 无效且可能干扰 - Prettier 格式化若设为
formatOnSave,建议搭配editor.formatOnType关闭,防止打字时自动换行打断补全流
最常被忽略的一点:Volar 的语言服务依赖项目根目录存在 package.json 且声明了 "type": "module" 或正确指定了 vue 版本;如果项目是手工搭建、没走 npm create vue@latest,可能缺少 vue 依赖或 types 声明,此时即使插件全开,defineProps 的类型提示也只会显示 “any”。

















