vs code 本身不自带 node.js 运行时,所有功能均依赖系统已安装且 path 可识别的 node;常见失败原因是 node 未安装、未入 path 或 vs code 未继承环境变量,而非配置错误。

VS Code 本身不带 Node.js 运行时,所有调试、终端执行、插件功能都依赖系统已安装且可被正确识别的 node。配置失败的绝大多数情况,不是 VS Code 设置错了,而是 node 根本没装、没进 PATH,或 VS Code 没继承到它。
node -v 在终端能跑,但在 VS Code 终端报 command not found
这是 macOS/Linux 和 Windows 都高频出现的问题,本质是 VS Code 启动时没加载 shell 的初始化文件(如 ~/.zshrc)或系统环境变量未生效。
- macOS/Linux:按
Cmd+Shift+P→ 输入Developer: Reload Window强制重载窗口,让 VS Code 重新读取 shell 环境;若仍不行,直接从终端启动 VS Code:code . - Windows:检查安装 Node.js 时是否勾选了
Add to PATH;没勾选就手动把C:\Program Files\nodejs\加到「系统环境变量」Path中,并重启所有终端(包括 VS Code) - 验证方式:在 VS Code 内置终端里运行
which node(macOS/Linux)或where node(Windows),必须有输出路径才真正可用
launch.json 中 program 字段填什么才不报错
program 是调试器启动时实际执行的 JS 文件路径,填错就会提示 Cannot find module 或静默退出。
使用一条命令部署ProbeChain Rydberg测试网代理节点。自动注册为Agent(NodeType=1),免gas,支持macOS/Linux/Windows。触发词:/r
- 最常用写法:
"program": "${workspaceFolder}/app.js"—— 要求项目根目录下真实存在app.js - 临时调试当前打开的文件:
"program": "${file}"(注意不是${fileBasename}) - ESM 项目(
package.json里有"type": "module"):必须加"env": {"NODE_OPTIONS": "--enable-source-maps"},否则断点失效 - TypeScript 项目:
program必须指向编译后的 JS 文件(如dist/index.js),不能填src/index.ts
断点不触发、调试控制栏灰掉的真正原因
不是插件没装全,而是调试器找不到 node 运行时,或源码映射没启用。
- 先确认
Debugger for Node.js插件已启用(它是Node.js Extension Pack里的核心组件,其他如 Auto Import 可关) - 如果用了
nvm/fnm,调试器默认不识别版本切换逻辑,必须在launch.json中显式指定:"runtimeExecutable": "~/.nvm/versions/node/v20.18.0/bin/node" - 用
ts-node直接跑 TS 文件?调试器不支持。改用node --loader ts-node/esm模式,并在runtimeArgs里配好 - ESM + source map 场景下,仅靠
sourceMaps: true不够,还得确保生成的.js.map文件和.js同目录,且没有被构建工具误删
最容易被忽略的是:VS Code 调试器和终端用的是两套环境查找逻辑。终端能跑 node,不代表调试器能自动找到它;launch.json 里一个路径写错,或者少一行 env 配置,断点就永远不生效——它不会报错,只会沉默。










