怎样用VSCode进行Vue.js项目开发?【教程】

发布时间 - 2026-01-17 00:00:00    点击率:
VSCode需安装Volar、TypeScript Vue Plugin(Volar)和Prettier三个插件并正确配置:启用Volar的Take Over Mode,设置script标签lang="ts",配置launch.json使用chrome调试器并确保source map开启。

VSCode 本身不“支持 Vue.js”,而是靠插件 + 配置补全开发体验。开箱即用的语法高亮、跳转、自动补全,必须手动装对插件并启用对应语言服务。

必须安装的三个核心插件

缺一不可,且版本需匹配 Vue 版本(尤其是 Vue 3 项目):

  • Volar:Vue 官方推荐的语言服务器(取代已废弃的 Vetur),提供 支持、响应式类型推导、模板内 TypeScript 检查
  • TypeScript Vue Plugin (Volar):配合 Volar 使用的 TS 插件,确保 .vue 文件中 script 区域能正确识别组合式 API 类型
  • Prettier:格式化代码,但需注意与 Volar 冲突——必须在 VSCode 设置中禁用 Prettier.vue 文件的默认接管,改由 Volar 自带的格式化器处理

项目初始化后要立即做的配置

新建的 Vue 项目(如用 create-vuenpm create vue@latest)生成的是标准结构,但 VSCode 默认不会启用 Volar 的“Take Over Mode”:

  • 打开任意 .vue 文件,右下角状态栏会出现 Vue 字样;点击它 → 选择 Take Over Mode(不是 Extension Mode
  • 该操作会临时禁用 TypeScript 官方插件对 .vue 文件的处理,避免类型重复或冲突
  • 如未手动切换,ref() 的类型提示可能丢失,defineProps() 泛型无法推导,模板中属性名敲错也不会报错

调试时 debugger 不生效?检查 launch.json

Vue 项目默认是打包后运行(npm run dev 启动的是 Vite 或 Vue CLI 的 dev server),源码映射(source map)必须开启且被 Chrome/Edge 正确加载:

  • 确保 vite.config.tsbuild.sourcemap 设为 true(开发时默认开启,但自定义配置可能关掉)
  • VSCode 的 .vscode/launch.json 应使用 chromemsedge 调试器,并设置 "url": "http://localhost:5173"(端口需与 Vite 输出一致)
  • 不要用 node 类型调试器去 Attach Vue 前端代码——那只能调试 Node 环境下的构建脚本
{
  "version": "0.2.0",
  "configurations": [
    {
      "type": "chrome",
      "request": "launch",
      "name": "Launch Chrome against localhost",
      "url": "http://localhost:5173",
      "webRoot": "${workspaceFolder}",
      "sourceMapPathOverrides": {
        "webpack:///src/*": "${webRoot}/src/*"
      }
    }
  ]
}

模板中方法调用没提示?检查 script 标签的 lang 属性

Volar 的类型能力高度依赖 标签是否显式声明语言和模式:

  • ✅ —— 启用完整类型支持
  • ❌ —— 默认按 JS 解析,defineProps() 泛型无效,ref 类型不收敛
  • ✅ —— 选项式 API 也能获得类型提示,但需手动写 defineComponent({})
  • 即使项目用 JS 开发,也建议写 lang="ts" 并配 // @ts-check,否则 Volar 很多特性直接不触发

最容易被忽略的是:Volar 的 Take Over Mode 是**按工作区文件生效的**,不是全局开关。如果同时打开多个 Vue 项目文件夹,每个都得单独点一次右下角切换——不切,就等于没开。


# vue  # vscode  # js  # 前端  # json  # node  # vue.js  # vite  # typescript  # npm  # app  # chrome  # edge  # 泛型  # map 


相关栏目: 【 网站优化151355 】 【 网络推广146373 】 【 网络技术251813 】 【 AI营销90571


相关推荐: 如何用VPS主机快速搭建个人网站?  Swift中switch语句区间和元组模式匹配  iOS验证手机号的正则表达式  Laravel API资源(Resource)怎么用_格式化Laravel API响应的最佳实践  奇安信“盘古石”团队突破 iOS 26.1 提权  宙斯浏览器视频悬浮窗怎么开启 边看视频边操作其他应用教程  Laravel如何处理文件上传_Laravel Storage门面实现文件存储与管理  Laravel怎么进行数据库回滚_Laravel Migration数据库版本控制与回滚操作  Laravel如何使用Blade组件和插槽?(Component代码示例)  谷歌Google入口永久地址_Google搜索引擎官网首页永久入口  Laravel Pest测试框架怎么用_从PHPUnit转向Pest的Laravel测试教程  浅谈javascript alert和confirm的美化  个人网站制作流程图片大全,个人网站如何注销?  高端建站三要素:定制模板、企业官网与响应式设计优化  详解CentOS6.5 安装 MySQL5.1.71的方法  Laravel如何使用Service Provider服务提供者_Laravel依赖注入与容器绑定【深度】  如何快速上传自定义模板至建站之星?  PHP正则匹配日期和时间(时间戳转换)的实例代码  如何为不同团队 ID 动态生成多个“认领值班”按钮  怎么制作网站设计模板图片,有电商商品详情页面的免费模板素材网站推荐吗?  如何快速打造个性化非模板自助建站?  如何在云主机上快速搭建网站?  php读取心率传感器数据怎么弄_php获取max30100的心率值【指南】  Laravel如何使用Socialite实现第三方登录?(微信/GitHub示例)  Laravel怎么做缓存_Laravel Cache系统提升应用速度的策略与技巧  小米17系列还有一款新机?主打6.9英寸大直屏和旗舰级影像  如何在新浪SAE免费搭建个人博客?  Laravel队列由Redis驱动怎么配置_Laravel Redis队列使用教程  浅谈redis在项目中的应用  如何用5美元大硬盘VPS安全高效搭建个人网站?  北京专业网站制作设计师招聘,北京白云观官方网站?  如何快速搭建个人网站并优化SEO?  大型企业网站制作流程,做网站需要注册公司吗?  微信推文制作网站有哪些,怎么做微信推文,急?  网站建设整体流程解析,建站其实很容易!  Laravel如何实现数据导出到CSV文件_Laravel原生流式输出大数据量CSV【方案】  Laravel如何使用缓存系统提升性能_Laravel缓存驱动和应用优化方案  HTML5空格在Angular项目里怎么处理_Angular中空格的渲染问题【详解】  香港服务器建站指南:外贸独立站搭建与跨境电商配置流程  C#如何调用原生C++ COM对象详解  如何获取上海专业网站定制建站电话?  Edge浏览器提示“由你的组织管理”怎么解决_去除浏览器托管提示【修复】  使用PHP下载CSS文件中的所有图片【几行代码即可实现】  高端网站建设与定制开发一站式解决方案 中企动力  进行网站优化必须要坚持的四大原则  黑客如何利用漏洞与弱口令入侵网站服务器?  如何在Windows 2008云服务器安全搭建网站?  Laravel如何操作JSON类型的数据库字段?(Eloquent示例)  网站制作企业,网站的banner和导航栏是指什么?  如何彻底删除建站之星生成的Banner?