1. Vue3 项目里 VSCode 插件到底该怎么配
如果你正在用 Vue3 + Vite 做项目,大概率会遇到这种情况:.vue文件里<script setup>的变量没有类型提示,模板里写错属性名也不报错,改完代码浏览器半天不刷新。这些问题八成不是代码写错了,而是 VSCode 插件没配对。Vue3 的生态和 Vue2 时代差别很大,Vetur 那套已经不能直接用了,官方推荐的是 Volar(现在叫 Vue - Official)。再加上 Vite 插件、代码片段插件、自动闭合标签插件,一套组合下来才能让编辑器真正“懂”你的项目。
这篇内容面向刚上手 Vue3 或者从 Vue2 迁移过来的开发者,我会把 6 个插件的安装、配置、验证动作一步步写清楚,重点放在settings.json骨架和逐项确认插件生效的方法上。你跟着操作,十分钟内能把本地开发环境搭好。另外,如果你在项目里需要调用大模型能力做代码补全或对话调试,我会在最后给一个 TaoToken 的配置骨架,方便你把 API Key 接进开发流程,不影响主线插件配置。
先明确一个原则:插件不是装得越多越好。Vue3 项目里,Vetur 必须禁用,Volar 必须启用,这两个是互斥的。其他插件按需装,但下面这 6 个是我实测下来覆盖了高亮、类型检查、代码片段、标签闭合、组件跳转、Vite 服务控制这几个高频场景的最小组合。
2. TaoToken 前置:API Key 与接入文档准备
在讲插件配置之前,先把 TaoToken 的接入信息准备好。TaoToken 是一个大模型 API 聚合服务,你可以用它来调用多种模型做代码问答、补全或者 Agent 任务。官网地址是 https://taotoken.net/?utm_source=taotoken_aicg_blog_end&utm_medium=csdn&utm_campaign=rewrite&utm_content= ,API 基础地址是 https://taotoken.net/api 。
你需要先拿到 API Key。操作路径是:登录官网后进入控制台,在 API Keys 页面创建一个新的 Key。控制台地址是 https://taotoken.net/console?utm_source=taotoken_aicg_blog_end&utm_content=console&utm_campaign=rewrite ,API Keys 页面是 https://taotoken.net/api-keys?utm_source=taotoken_aicg_blog_end&utm_content=api-keys&utm_campaign=rewrite 。创建时建议给 Key 起一个能区分用途的名字,比如vscode-vue3-dev,方便后面在多个项目里复用时知道它是干嘛的。
拿到 Key 之后,不要直接硬编码到前端代码里。Vue3 项目里推荐用.env.local文件存,然后在vite.config.ts里通过loadEnv读取。如果你只是想在 VSCode 里做本地调试,也可以先放在系统环境变量里,后面我会给一个settings.json的引用方式。
接入文档在 https://taotoken.net/doc?utm_source=taotoken_aicg_blog_end&utm_content=doc&utm_campaign=rewrite ,里面写了不同模型的请求格式和参数说明。如果你后面要接 Claude Code 或者做长期编码 Agent,可以看 Coding Plan 页面 https://taotoken.net/coding-plan?utm_source=taotoken_aicg_blog_end&utm_content=coding-plan&utm_campaign=rewrite ,那里有套餐和调用方式的说明。模型对话调试可以用 https://taotoken.net/models?utm_source=taotoken_aicg_blog_end&utm_content=models&utm_campaign=rewrite 这个入口先试一下 Key 能不能通。
注意:API Key 只显示一次,创建后立刻复制保存。如果泄露了,去控制台删掉重新建一个。
3. 可复制配置:6 个插件清单与 settings.json 骨架
3.1 插件清单与安装命令
在 VSCode 里按Ctrl+Shift+X打开扩展面板,搜索下面 6 个插件并安装。也可以用命令行批量装:
code --install-extension Vue.volar code --install-extension hollowtree.vue-snippets code --install-extension formulahendry.auto-close-tag code --install-extension dariofuzinato.vue-peek code --install-extension mariorodeghiero.vue-theme code --install-extension antfu.vite装完之后,第一件事是禁用 Vetur。如果你之前装过 Vetur,在扩展面板搜索Vetur,点禁用。Vetur 和 Volar 同时开启会导致.vue文件语法高亮错乱、类型提示失效,这是最常见的冲突。
3.2 settings.json 骨架
按Ctrl+Shift+P,输入Open User Settings (JSON),把下面这段合并进去。如果你只想对当前项目生效,就在项目根目录建.vscode/settings.json。
{ "vue.server.hybridMode": true, "vue.server.includeLanguages": ["vue", "typescript", "javascript"], "typescript.tsdk": "node_modules/typescript/lib", "editor.formatOnSave": true, "editor.codeActionsOnSave": { "source.fixAll.eslint": "explicit" }, "files.associations": { "*.vue": "vue" }, "emmet.includeLanguages": { "vue-html": "html", "vue": "html" }, "auto-close-tag.activationOnLanguage": [ "html", "vue", "javascript", "typescript" ], "vite.autoStart": true, "vite.browserType": "chrome", "vue-peek.useVolar": true }这段配置里几个关键项解释一下。vue.server.hybridMode开启混合模式,让 Volar 同时处理 Vue2 和 Vue3 项目,如果你只做 Vue3 可以设为false减少开销。typescript.tsdk指向项目本地的 TypeScript 版本,避免 VSCode 内置版本和项目版本不一致导致类型检查结果不同。vite.autoStart让 Vite 插件在打开项目时自动启动开发服务器,vite.browserType指定用 Chrome 预览。
3.3 项目级 tsconfig 补充
Volar 的类型检查依赖tsconfig.json。在项目根目录确认有env.d.ts或vite-env.d.ts,内容至少包含:
/// <reference types="vite/client" /> declare module '*.vue' { import type { DefineComponent } from 'vue' const component: DefineComponent<{}, {}, any> export default component }没有这个声明文件,Volar 在.vue文件里导入组件时会报“找不到模块”的错误。
4. 验证请求:逐项确认插件生效
4.1 验证 Volar 类型提示
新建一个Test.vue,写下面代码:
<script setup lang="ts"> import { ref, computed } from 'vue' const count = ref(0) const double = computed(() => count.value * 2) function increment() { count.value++ } </script> <template> <button @click="increment">{{ double }}</button> </template>把鼠标悬停在count上,应该能看到Ref<number>的类型提示。在模板里输入{{ count.时,应该自动补全value。如果没有任何提示,检查 Vetur 是否已禁用,然后按Ctrl+Shift+P执行Vue: Restart Vue server。
4.2 验证代码片段
在.vue文件里输入vbase,按 Tab,应该生成一个基础模板。输入v3onmounted,按 Tab,应该生成onMounted生命周期函数。如果没反应,检查hollowtree.vue-snippets是否启用,并且文件语言模式是 Vue。
4.3 验证 Auto Close Tag
在模板里输入<div>,然后输入</,应该自动补全为</div>。这个插件对 Vue 模板里的自定义组件也生效,比如输入<MyComponent>后打</,会补全</MyComponent>。
4.4 验证 Vue Peek
在模板里右键一个组件标签,比如<MyComponent />,选择“Go to definition”,应该跳转到组件定义文件。如果组件是通过import引入的,会跳到.vue文件;如果是全局注册的,会跳到注册文件。
4.5 验证 Vite 插件
打开一个 Vite 项目,Vite 插件应该自动在底部状态栏显示服务器状态。点击状态栏的 Vite 图标,可以启动、停止、重启开发服务器。如果没自动启动,检查vite.autoStart是否为true,并且项目根目录有vite.config.ts。
4.6 验证 TaoToken 调用
在项目里建一个scripts/test-api.mjs,用 Node 跑一个最小请求:
const res = await fetch('https://taotoken.net/api/v1/chat/completions', { method: 'POST', headers: { 'Content-Type': 'application/json', 'Authorization': `Bearer ${process.env.TAOTOKEN_API_KEY}` }, body: JSON.stringify({ model: 'gpt-4o-mini', messages: [{ role: 'user', content: '用一句话说明 Vue3 的 ref 和 reactive 区别' }] }) }) const data = await res.json() console.log(data.choices[0].message.content)运行前设置环境变量TAOTOKEN_API_KEY,然后执行node scripts/test-api.mjs。如果返回一段中文说明,说明 Key 和网络都正常。如果报 401,检查 Key 是否复制完整;如果报 404,检查模型名是否在文档支持列表里。
5. 本篇常见错排查
5.1 Volar 不生效,模板里没有类型提示
最常见原因是 Vetur 没禁用。去扩展面板搜 Vetur,确认状态是“禁用”。如果还不行,检查settings.json里有没有"vue.server.hybridMode": true,然后重启 VSCode。另外,如果项目用的是 pnpm,node_modules里的 TypeScript 可能没被 VSCode 识别,执行pnpm add -D typescript确保本地有 TS。
5.2 保存时 ESLint 不自动修复
editor.codeActionsOnSave里的source.fixAll.eslint需要项目装了 ESLint 插件并且有.eslintrc配置。如果用的是 Flat Config(eslint.config.js),确保 ESLint 扩展版本在 3.0 以上。另外,Volar 不包含 ESLint,需要单独装dbaeumer.vscode-eslint。
5.3 Vite 插件启动服务器失败
检查vite.config.ts里的server.port是否被占用。Vite 插件默认用项目配置的端口,如果端口冲突会启动失败。可以在settings.json里加"vite.port": 5174换一个端口。另外,如果项目用的是npm run dev自定义脚本,Vite 插件可能识别不到,需要在vite.config.ts里显式导出配置。
5.4 TaoToken 请求返回 429
429 是频率限制。如果你在短时间内发了大量请求,等几秒再试。如果持续 429,去控制台看当前套餐的 RPM 限制。Coding Plan 页面有不同档位的说明,按需升级即可。不要在前端代码里直接暴露 Key,所有请求走服务端代理。
5.5 Vue Peek 跳转到了错误的文件
如果项目里用了路径别名(比如@/components/MyComponent.vue),需要在tsconfig.json里配置paths,Vue Peek 才能正确解析。示例:
{ "compilerOptions": { "baseUrl": ".", "paths": { "@/*": ["src/*"] } } }改完tsconfig.json后重启 VSCode,再试跳转。
6. 把插件配置和 API 接入串起来
上面这套配置跑通之后,你的 Vue3 开发环境基本就稳了。Volar 负责类型和模板提示,Vue Snippets 加快写代码速度,Auto Close Tag 减少手误,Vue Peek 方便跳组件,Vite 插件控制开发服务器,Vue Theme 换个顺眼的配色。这 6 个插件各司其职,不需要再装一堆重复功能的扩展。
如果你后面要在项目里接大模型做代码审查或者自动生成组件,TaoToken 的 API Key 和接入文档已经准备好了。API Keys 页面在 https://taotoken.net/api-keys?utm_source=taotoken_aicg_blog_end&utm_content=api-keys&utm_campaign=rewrite ,接入文档在 https://taotoken.net/doc?utm_source=taotoken_aicg_blog_end&utm_content=doc&utm_campaign=rewrite 。想先试试模型对话效果,可以直接用 https://taotoken.net/models?utm_source=taotoken_aicg_blog_end&utm_content=models&utm_campaign=rewrite 这个入口。长期做编码 Agent 的话,Coding Plan 页面 https://taotoken.net/coding-plan?utm_source=taotoken_aicg_blog_end&utm_content=coding-plan&utm_campaign=rewrite 有更详细的调用方式。
最后提醒一句:settings.json里的配置项会随着插件版本更新变化,如果某个配置项失效,去插件市场页面看最新文档。Volar 现在叫 Vue - Official,搜索时用新名字能找到。Vite 插件对 Vite 5 和 Vite 6 的支持略有差异,项目升级 Vite 大版本后记得同步更新插件。