VSCode调试Node.js必须先安装并正确配置系统级Node.js,否则所有调试功能均失效;需验证终端中node -v可用,再确保VSCode继承PATH(macOS/Linux用code .启动,Windows检查Add to PATH),launch.json中program须指向真实JS文件,ESM项目需设"type": "module"。

VSCode 本身不运行 JavaScript,必须依赖系统已安装且能被正确找到的 node 命令——没装 Node.js 或 PATH 没配对,点 F5、右键“Run Code”、甚至终端里输 node index.js 都会直接失败。
终端里 node -v 成功,但 VSCode 里报 command not found: node
这不是插件或设置问题,是 VSCode 启动时没继承 Shell 的 PATH 环境变量。
- macOS/Linux:从 Dock 或 Spotlight 启动 VSCode 不会加载
~/.zshrc;改完export PATH后只source ~/.zshrc不够,必须重启 VSCode,更稳妥的是在终端执行code .启动项目 - Windows:安装 Node.js 时没勾选 “Add to PATH”,系统级环境变量里就没有
C:\Program Files\nodejs\;打开“系统属性 → 环境变量”,手动加进去,或重装并务必勾选该选项 - 验证是否真正生效:在 VSCode 内置终端(
Ctrl+`)里再跑一次node -v;没输出就别往下配launch.json,纯属白忙
按 F5 调试报 Can't find runtime executable 或断点不命中
根本原因是 launch.json 里 program 指向了不可执行的文件,或者误加了 runtimeExecutable。
Java Maven 项目审查工作流的通用输入处理。当 Java Maven 项目以 ZIP压缩包或 GitLab 仓库 URL 形式提供且需要...时使用。
-
"program": "${file}"适合单文件调试;若入口是src/index.js,显式写成"program": "${workspaceFolder}/src/index.js" - 别手填
runtimeExecutable,除非你明确用nvm切版本且需要锁定路径(例如"runtimeExecutable": "~/.nvm/versions/node/v18.18.2/bin/node") - TypeScript 或打包项目(Vite/Webpack):
program必须指向编译后的.js文件(如dist/index.js),不是.ts或.jsx源码 - ESM 项目必须在
package.json中加"type": "module",否则调试器按 CommonJS 解析,import报错、路径也容易错乱
用 Code Runner 插件运行却乱码、卡住、或不支持 process.stdin
它默认命令太简陋,不处理编码、模块类型和输入流,在中文路径或 ESM 项目下极易出问题。
立即学习“Java免费学习笔记(深入)”;
- Windows 中文乱码:在 VSCode 设置中搜
code-runner.executorMap,把javascript对应值改成:"node -r utf-8 $fileName" - ESM 报错
Cannot use import statement outside a module:确保package.json有"type": "module",再把 executor 改成:"node --experimental-specifier-resolution=node $fileName" -
process.stdin假死:Code Runner 不支持交互式输入;要么换到集成终端手动运行,要么用 F5 调试模式(它支持 stdin 流)
真正容易被忽略的点是:VSCode 的调试器和终端对 node 的查找逻辑不完全一致——终端靠 PATH,调试器还可能读取 runtimeExecutable 或缓存旧路径;哪怕 node -v 在终端里成功,launch.json 里一个多余的字段也可能让断点彻底失效。

















