vue项目vscode体验差主因是插件配置错误:需禁用vetur、启用volar,确保.vue文件语言模式为vue,snippets中scope设为"vue",并正确配置eslint与prettier协同及tsconfig.json类型支持。

Vue 项目在 VSCode 里写不爽,八成不是代码问题,而是插件没配对、语言模式没识别、或者 snippet 没生效——尤其 Vue 3 的 script setup 模板,错一个配置就完全不触发。
为什么 .vue 文件输 vue 按 Tab 没反应
根本就两件事没做对:当前文件语言模式不是 vue,或代码片段的 scope 值写错了。
- 看右下角状态栏:显示的是
Plain Text或HTML?点它 → 选Vue(前提是已装Volar) -
vue.code-snippets里漏了"scope": "vue",或误写成"scope": "html"、"scope": "javascript" - 还在用
Vetur:Vue 3 项目中Vetur不支持scope: "vue",必须禁用Vetur+ 启用Volar -
.vue后缀没关联到vue语言模式:打开设置搜files.associations,加一行"*.vue": "vue"
如何正确创建全局 Vue 模板 snippet
别改 vue.json,新建独立的 vue.code-snippets 文件更干净,避免和其他插件冲突。
- 按
Ctrl+Shift+P(Win/Linux)或Cmd+Shift+P(Mac),输入Preferences: Configure User Snippets - 选
New Global Snippets file,命名为vue.code-snippets - 填入以下内容(Vue 3
setup风格,无export default):
{
"Vue SFC (setup)": {
"scope": "vue",
"prefix": "vue",
"body": [
"<template>",
" <div>$1</div>",
"</template>",
"",
"<script setup>",
"$2",
"</script>",
"",
"<style scoped>",
"$3",
"</style>"
],
"description": "Vue 3 SFC with script setup"
}
}
- 保存后执行
Ctrl+Shift+P→Developer: Reload Window - 新建
test.vue,确认右下角是Vue,再输vue按Tab
Volar 和 Vetur 必须二选一,且不能共存
Vue 3 项目里同时启用 Vetur 和 Volar,会导致语法高亮错乱、props 提示失效、甚至 script setup 根本不识别。
-
Volar是 Vue 官方推荐的 Vue 3 专属语言服务器,支持setup、defineProps、defineEmits类型推导 -
Vetur已停止维护,对 Vue 3 的script setup支持极弱,连scope: "vue"都不认 - 检查方式:打开扩展面板(
Ctrl+Shift+X),搜索Vetur,点击“禁用”;再搜Volar,确保是“已启用” - 重启 VSCode 后,打开任意
.vue文件,看是否出现Component is missing template or render function报错——有则说明还在用Vetur解析
ESLint + Prettier 协同工作要断掉 ESLint 的格式化能力
Vue 3 项目里,eslint 和 prettier 直接打架,表现就是保存一次加个分号,再保存一次又删掉。
- 必须在项目中安装
eslint-config-prettier:npm install --save-dev eslint-config-prettier -
.eslintrc.js中extends加上'eslint-config-prettier',关掉所有格式类规则 - VS Code 设置里显式关闭 ESLint 格式功能:
"eslint.format.enable": false -
editor.formatOnSave开启,但默认格式化器必须设为esbenp.prettier-vscode,否则保存时不会走 Prettier - 验证方式:
Ctrl+Shift+P→ 输入Format Document With,弹出列表里必须有Prettier
最常被忽略的一点:Volar 的类型提示依赖 tsconfig.json 正确配置 compilerOptions.types,如果项目用了 @vue/runtime-core 或 unplugin-vue-macros,不补全类型就看不到 defineProps 的完整推导。
前端入门到VUE实战笔记:立即使用
在学习笔记中,你将探索 前端 的入门与实战技巧!











