VSCode检测不到Node.js根本原因是环境变量未继承或系统PATH缺失,需先在终端执行node -v验证;无输出则须彻底重启VSCode并修正shell配置(macOS/Linux)或系统环境变量(Windows),再通过terminal.integrated.env.*注入PATH。

VSCode 检测不到已安装的 Node,99% 是环境变量没继承进来,不是插件或设置问题——先别动 launch.json,直接在 VSCode 终端里跑 node -v 看有没有输出。没输出就全是白搭。
VSCode 终端执行 node -v 报 command not found
这不是 VSCode 故意不认,而是它启动时压根没读你的 shell 配置(比如 ~/.zshrc)或系统 PATH 里根本没写 Node 路径。
- macOS/Linux:从 Dock 或 Spotlight 启动 VSCode,进程不加载
~/.zshrc,which node输出的路径(如/opt/homebrew/bin/node)必须显式加进export PATH="...:$PATH"里 - Windows:打开「系统属性 → 高级 → 环境变量」,检查「系统变量」的
Path是否含C:Program Files odejs;常见错误是路径写成C:Program Files odejs(缺反斜杠、空格被吞) - 改完配置后,必须彻底退出所有 VSCode 窗口(不是重载窗口),再从终端执行
code --no-sandbox .启动——否则新 PATH 不生效
终端能用 node -v,但 F5 调试报 Cannot find runtime 'node'
调试器和终端走的是两套路径查找逻辑:终端靠系统 PATH,调试器默认不查 PATH,尤其当你用了 nvm、fnm 或自定义安装路径时。
使用一条命令部署ProbeChain Rydberg测试网代理节点。自动注册为Agent(NodeType=1),免gas,支持macOS/Linux/Windows。触发词:/r
- 检查项目下的
.vscode/launch.json,如果存在runtimeExecutable字段,它会完全绕过 PATH;删掉该字段,让调试器自动找 - 如果必须指定运行时(比如多版本共存),
runtimeExecutable值应为绝对路径,例如"runtimeExecutable": "/Users/xxx/.nvm/versions/node/v18.17.0/bin/node",不能用~或环境变量缩写 - ESM 项目要额外注意:
package.json必须有"type": "module",否则调试器按 CommonJS 解析,import会失败,看起来像“找不到 node”
想绕过系统 PATH,只给当前项目配 Node 路径
用 terminal.integrated.env.* 注入环境变量,比改系统更安全,也支持局部生效。
- 全局生效:在 VSCode 设置里搜
terminal.integrated.env,编辑settings.json,加字段如"terminal.integrated.env.linux"(macOS 用.osx,Windows 用.windows) - 局部生效:在项目根目录建
.vscode/settings.json,内容示例:{ "terminal.integrated.env.linux": { "PATH": "/opt/node-v18.17.0/bin:${env:PATH}" } } -
${env:PATH}必须保留,否则 npm、git 等命令会失效;路径用正斜杠/或双反斜杠\,单反斜杠在 JSON 里会解析失败
最容易被忽略的一点:改完任何 PATH 相关配置,都必须彻底重启 VSCode 进程——仅关闭终端或重载窗口无效。调试器的 runtimeExecutable 和终端的 PATH 是两条独立链路,各自验证,不能互相替代。

















