VSCode怎么配置Vue3+Vite开发环境 - Volar插件取代Vetur的升级指南

大杰姑娘_7000

大杰姑娘_7000

2026-03-31

932人浏览

原创

装了volar没语法提示的主因是vetur冲突,需禁用vetur(工作区)、启用volar(≥1.10.0)、完全重启vscode;根目录需有正确tsconfig.json/jsconfig.json;优先用类型声明defineprops;关闭take over mode可缓解卡顿。

vscode怎么配置vue3+vite开发环境 - volar插件取代vetur的升级指南

为什么装了 Volar 还是没语法提示?

核心问题不是插件没装,而是 VSCode 默认启用了旧的 Vetur,它和 Volar 冲突,会抢占 .vue 文件的处理权。Volar 官方明确要求禁用 Vetur 或设为“禁用(工作区)”。

  • 打开 VSCode 命令面板(Ctrl+Shift+P / Cmd+Shift+P),搜 Extensions: Show Enabled Extensions,找到 Vetur,右键 → Disable (Workspace)
  • 确认 Volar 是启用状态,且版本 ≥ 1.10.0(老版本不支持 Vue 3.4+ 的 defineModel 等新语法)
  • 重启 VSCode —— 不只是重载窗口,必须完全退出再打开,否则语言服务器不会重新注册

tsconfig.json 和 jsconfig.json 怎么配才不报红?

Volar 依赖 TS 语言服务解析类型,但默认不读取项目根目录外的配置,尤其当你用 Vite 创建的项目时,tsconfig.json 往往在子目录(如 src/)或压根没生成,就会导致 refcomputed 类型推导失败、props 无提示。

  • 确保项目根目录有 tsconfig.json(Vite 模板默认生成),内容至少包含:
    {
      "compilerOptions": {
        "target": "ES2020",
        "module": "ESNext",
        "lib": ["ES2020", "DOM", "DOM.Iterable", "ScriptHost"],
        "skipLibCheck": true,
        "esModuleInterop": true,
        "allowSyntheticDefaultImports": true,
        "strict": true,
        "forceConsistentCasingInFileNames": true,
        "moduleResolution": "Node",
        "resolveJsonModule": true,
        "isolatedModules": true,
        "noEmit": true,
        "jsx": "preserve",
        "types": ["vite/client", "vue"]
      },
      "include": ["src/**/*.ts", "src/**/*.d.ts", "src/**/*.tsx", "src/**/*.vue"],
      "references": [{ "path": "./tsconfig.node.json" }]
    }
  • 如果项目用 JS,也要加 jsconfig.json,且 "checkJs": true 必须开启,否则 Volar 不会校验 JS 中的 defineProps 类型
  • 删掉 src/tsconfig.json 这类嵌套配置 —— Volar 只认根目录的配置文件

Vue 文件里 defineProps 提示不对或报错?

常见于使用运行时声明(defineProps({ foo: String }))时,Volar 默认只对类型声明(defineProps())提供完整支持;但即使写类型声明,也可能因 TS 版本或配置漏项而失效。

Vite
Vite

为开发、生产构建和库打包配置并优化 Vite。

下载
  • 优先用类型声明:用 defineProps(),别用运行时对象形式(后者仅基础校验,无 IDE 提示)
  • 确保 compilerOptions.types 包含 "vue"(上面 tsconfig.json 示例已体现)
  • 如果用了 withDefaults,注意写法:
    const props = withDefaults(defineProps(), {
      bar: 0
    })
    ,不能把默认值写在泛型里
  • 遇到 Cannot find name 'defineProps',八成是 types"vue"include 没覆盖到当前文件

Volar 启动慢、CPU 占用高怎么办?

Volar 的语言服务器(Volar Server)在大型项目中容易卡顿,尤其开启 Take Over Mode 后接管全部 .vue 文件,会重复加载 TS 服务实例。

  • 关闭 Take Over Mode:在 VSCode 设置里搜 volar.takeOverMode,设为 false;改用 Vue 模式(右下角点击文件类型,选 Vue)手动切换
  • 限制监听范围:在 settings.json
    "volar.trace.server": "off",
    "volar.ignorePackages": ["@vue/runtime-core", "vue-demi"]
  • 禁用非必要插件:比如 Auto ImportPath Intellisense 在 Vue 项目中常与 Volar 冲突,引发重复索引

真正麻烦的是 node_modules 里带类型定义的第三方 Vue 库(比如 naive-ui),它们会让 Volar 反复解析 d.ts。这类问题没有银弹,只能靠删缓存 + 控制库版本 + 接受局部提示缺失。

前端入门到VUE实战笔记:立即使用
在学习笔记中,你将探索 前端 的入门与实战技巧!

相关文章

PHP速学视频免费教程(入门到精通)
PHP速学视频免费教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载

相关标签:

vscode vue3 vite

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

相关专题

更多
json数据格式
json数据格式

JSON是一种轻量级的数据交换格式。本专题为大家带来json数据格式相关文章,帮助大家解决问题。

2023.08.07

1955

5

json是什么
json是什么

JSON是一种轻量级的数据交换格式,具有简洁、易读、跨平台和语言的特点,JSON数据是通过键值对的方式进行组织,其中键是字符串,值可以是字符串、数值、布尔值、数组、对象或者null,在Web开发、数据交换和配置文件等方面得到广泛应用。本专题为大家提供json相关的文章、下载、课程内容,供大家免费下载体验。

2023.08.23

2582

1

jquery怎么操作json
jquery怎么操作json

操作的方法有:1、“$.parseJSON(jsonString)”2、“$.getJSON(url, data, success)”;3、“$.each(obj, callback)”;4、“$.ajax()”。更多jquery怎么操作json的详细内容,可以访问本专题下面的文章。

2023.10.13

896

3

go语言处理json数据方法
go语言处理json数据方法

本专题整合了go语言中处理json数据方法,阅读专题下面的文章了解更多详细内容。

2025.09.10

2879

7

string转int
string转int

在编程中,我们经常会遇到需要将字符串(str)转换为整数(int)的情况。这可能是因为我们需要对字符串进行数值计算,或者需要将用户输入的字符串转换为整数进行处理。php中文网给大家带来了相关的教程以及文章,欢迎大家前来学习阅读。

2023.08.02

5079

3

TypeScript类型系统进阶与大型前端项目实践
TypeScript类型系统进阶与大型前端项目实践

本专题围绕 TypeScript 在大型前端项目中的应用展开,深入讲解类型系统设计与工程化开发方法。内容包括泛型与高级类型、类型推断机制、声明文件编写、模块化结构设计以及代码规范管理。通过真实项目案例分析,帮助开发者构建类型安全、结构清晰、易维护的前端工程体系,提高团队协作效率与代码质量。

2026.03.13

311

19

js正则表达式
js正则表达式

php中文网为大家提供各种js正则表达式语法大全以及各种js正则表达式使用的方法,还有更多js正则表达式的相关文章、相关下载、相关课程,供大家免费下载体验。

2023.06.20

3736

8

js获取当前时间
js获取当前时间

JS全称JavaScript,是一种具有函数优先的轻量级,解释型或即时编译型的编程语言;它是一种属于网络的高级脚本语言,主要用于Web,常用来为网页添加各式各样的动态功能。js怎么获取当前时间呢?php中文网给大家带来了相关的教程以及文章,欢迎大家前来学习阅读。

2023.07.28

1195

5

js 字符串转数组
js 字符串转数组

js字符串转数组的方法:1、使用“split()”方法;2、使用“Array.from()”方法;3、使用for循环遍历;4、使用“Array.split()”方法。本专题为大家提供js字符串转数组的相关的文章、下载、课程内容,供大家免费下载体验。

2023.08.03

1518

5

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程