vscode调试nuxt必须用pwa-node类型并配置runtimeexecutable为"npx",因nuxi dev非裸node进程;volar需切至taken over mode,tsconfig.json/jsconfig.json须手动配置别名,且所有修改后须重启ts server。

VSCode 本身不运行 Nuxt,它只负责编辑、调试和启动 —— 真正跑起来的是 nuxi dev 进程,而这个进程依赖 Node.js 环境。配置失败的根源往往不是“没装 Node”,而是 VSCode 没法正确调起、识别或调试这个进程。
确认 Node.js 已就绪且被 VSCode 识别
VSCode 调试器在启动时不会自动继承系统 PATH(尤其在 Windows 或某些 macOS 终端配置下),所以即使终端里 node -v 和 npx nuxi dev 都能跑,VSCode 仍可能报 command not found: nuxi。
- 打开 VSCode 终端(
Ctrl+`),执行which node(macOS/Linux)或where node(Windows),确认路径合理 - 在同一终端里运行
npx nuxi --version,验证npx可用 —— 如果失败,说明 Node 环境未正确注册到 VSCode 启动的 shell 中 - 若 VSCode 终端里
npx不可用,但系统终端可用:重启 VSCode 并确保它是从终端中启动(例如在终端输入code .),否则 GUI 启动的 VSCode 可能缺失 shell 初始化逻辑
Volar 必须切到 Taken Over Mode 才能识别 Nuxt API
definePageMeta 标红、useAsyncData 无类型提示、~/components 跳转失败,90% 是因为 Volar 还在 Strict Mode。Strict Mode 只认标准 Vue 语法,对 Nuxt 的运行时注入函数完全无视。
ZenHeart zenlink 与 zenlink-mcp 为 OpenClaw,涵盖安装、MCP 注册、钩子接线、入站轮询及升级维护。
- 按
Ctrl+Shift+P(macOS 是Cmd+Shift+P),输入并执行Volar: Switch to Taken Over Mode - 切换后必须关闭整个 VSCode 窗口(不只是重载窗口),再重新用
code .打开项目根目录 —— TS Server 不会自动重载旧模式下的类型服务 - 务必禁用
Vetur:它与 Volar 冲突,会导致所有<script setup></script>的类型推导彻底失效
tsconfig.json 或 jsconfig.json 缺一不可
VSCode 不读 .nuxt/tsconfig.json,也不自动理解 Nuxt 的 ~/ 别名。没有显式配置,编辑器就当普通 Vue 项目处理,类型系统直接“失明”。
- TS 项目:根目录
tsconfig.json至少含:{"extends":"./.nuxt/tsconfig.json","compilerOptions":{"types":["nuxt"]}} - JS 项目:根目录
jsconfig.json至少含:{"compilerOptions":{"baseUrl":".","paths":{"~/*":["src/*"],"@/*":["src/*"]}}} - 改完立即执行
Ctrl+Shift+P→TypeScript: Restart TS server,否则缓存残留,标红照旧
launch.json 必须用 pwa-node + npx,不能写 nuxi
"type": "node" 是错的。Nuxt 3 启动的是 nuxi dev 命令,不是裸 Node.js 进程;VSCode 默认 Node 调试器抓不到它,且调试模式下不读全局 PATH。
- 在
.vscode/launch.json中配:{"type":"pwa-node","request":"launch","name":"Nuxt Dev","runtimeExecutable":"npx","runtimeArgs":["nuxi","dev"],"console":"integratedTerminal","internalConsoleOptions":"neverOpen"} -
runtimeExecutable必须是"npx",不是"nuxi"—— 写成后者必报command not found - 服务端断点(如
server/api/hello.ts)只在浏览器真实发起 HTTP 请求时触发;客户端断点(如pages/index.vue)要等 hydration 完成后才生效,首次加载大概率跳过
最常被忽略的一点:所有配置修改后,VSCode 不会自动刷新语言服务。关窗口、重开项目、重启 TS Server,三步缺一不可 —— 少一步,useRuntimeConfig 就还是标红,~/ 就依然跳转失败。










