Vetur导致CPU持续飙高是因为其无法解析Vue 3的defineProps等新语法,陷入AST解析死循环;必须用Disable (Workspace)彻底禁用并重启VSCode,同时配置files.watcherExclude和清理残留进程。

为什么Vetur会导致CPU持续飙高
Vetur在Vue 2项目中表现尚可,但一旦打开Vue 3项目(尤其含<script setup>或defineProps),它会因无法正确解析新语法而反复尝试重载、回退、fallback,最终卡死在AST解析循环里。这不是“慢”,是逻辑失控——<code>Extension Host进程CPU常被它拉到70%以上,且不随编辑操作停止。</script>
禁用Vetur必须用Disable (Workspace),不是Disable
VSCode对Vetur的禁用有陷阱:点右键菜单里的“Disable”只停当前窗口激活,旧进程仍在后台跑;必须选“Disable (Workspace)”才真正切断注册监听。操作后不重启=白禁。
- 按
Cmd+Shift+P(macOS)或Ctrl+Shift+P(Windows/Linux),输入Extensions: Show Enabled Extensions - 搜
vetur,右键 →Disable (Workspace) - 关闭所有VSCode窗口(不是重载),再重新打开工作区
- 验证是否生效:运行
code --status,确认输出里不再出现octref.vetur相关进程
Volar启用后仍卡顿?关掉Take Over Mode
Volar默认开启Take Over Mode,会接管所有.vue文件并强制用TS服务全量分析——对没配好tsconfig.json的项目,它会在后台不断重试类型推导,CPU居高不下。
- 打开设置(
Cmd+,),搜索volar.takeOverMode - 把值设为
false(注意不是删除该配置项) - 确保
volar版本≥1.10.0(老版本即使关take over也会漏处理defineModel) - 如果项目根目录没有
tsconfig.json,Volar会退化为低效扫描模式,务必补上基础配置
files.watcherExclude不加,Vetur/Volar都救不了你
就算换掉Vetur,只要files.watcherExclude没配,VSCode仍会为node_modules里几万个.vue文件触发Vetur残留监听器,导致Extension Host持续满载。
必须在settings.json里硬写进这三行:
"files.watcherExclude": {
"**/node_modules/**": true,
"**/dist/**": true,
"**/.git/**": true
}
注意:**不能少,写成*或*/node_modules/*完全无效;Linux用户还需检查fs.inotify.max_user_watches是否够用,否则watcher静默失败后会无限重试。
最易被忽略的是:Vetur卸载后,它的语言服务器进程(如vetur-server)可能还挂在后台。执行ps aux | grep -i vetur,看到PID就kill -9 [PID]——别指望它自己退出。











