npm报“无法识别”是因roaming pm路径未加入path,需同时添加node.js和npm目录并重启vscode;调试需显式指定runtimeexecutable路径;sourcemap、outfiles等配置必须匹配实际路径。

node -v 能用但 npm 报“无法识别”
这是 PowerShell 终端没加载 Node.js 安装路径的典型表现,不是 npm 没装,而是系统根本不知道它在哪。
- 先在 VSCode 终端(
Ctrl + `)里运行node -v和npm -v,确认哪个失败 - 如果
node -v有输出、npm -v报错,大概率是 npm 的全局安装目录没进PATH—— 它通常在C:Users用户名AppDataRoaming pm - Windows 下手动加环境变量时,必须同时添加两个路径:
C:Program Files odejs(node.exe 所在)和上面那个Roaming pm目录 - 加完别只点“确定”,要重启所有 VSCode 窗口(关掉再开),否则终端仍读旧的
PATH
launch.json 报 “Cannot find runtime 'node'”
调试器不继承终端的 PATH,哪怕你 node -v 跑得飞起,它也可能完全找不到 node.exe。
ZenHeart zenlink 与 zenlink-mcp 为 OpenClaw,涵盖安装、MCP 注册、钩子接线、入站轮询及升级维护。
- 不要指望调试器自动猜路径,必须显式指定:
"runtimeExecutable": "C:\Program Files\nodejs\node.exe" - 路径里用双反斜杠
\或正斜杠/,单反斜杠会解析失败 - 如果用了
nvm或fnm,不能写node,得写死当前版本路径,比如"~/.nvm/versions/node/v20.15.0/bin/node"(macOS/Linux)或"C:\Users\xxx\AppData\Roaming\nvm\v18.17.0\node.exe"(Windows) - 改完
launch.json后,必须重启调试会话,不能只点“重新启动”
断点打上却不停,或停在 .js 不是 .ts 上
这不是插件问题,是 source map 链路断了,调试器看到的是编译后代码,没连回源码。
-
tsconfig.json必须有"sourceMap": true,且禁用"inlineSourceMap": true(VSCode 更认独立.map文件) -
launch.json里要配齐三项:"sourceMaps": true、"outFiles": ["${workspaceFolder}/dist/**/*.js"](路径得和你实际输出一致)、"resolveSourceMapLocations": ["${workspaceFolder}/src/**", "!**/node_modules/**"] -
program字段必须指向编译后的.js文件,比如"${workspaceFolder}/dist/index.js",绝不能写src/index.ts - ESM 项目还要加
"runtimeArgs": ["--experimental-specifier-resolution=node"],否则import会直接报错
智能提示失效、跳转不到定义
只要 node -v 和 npm run dev 能跑,说明 Node 运行时没问题;补全挂了,90% 是语言服务没激活。
- JS 项目缺
jsconfig.json:哪怕空文件也得有,内容可以只是{} - TS 项目检查
tsconfig.json是否启用了"composite": true或"declaration": true,否则类型推导会弱 - 禁用所有非官方 JS/TS 插件,尤其是老版本的 “JavaScript (ES6) code snippets”,它们会劫持语言服务
- 如果用了
pnpm或Yarn PnP,确保node_modules在工作区根目录,否则 VSCode 找不到类型声明










