真正搭好Node.js开发环境需满足两个核心条件:能运行node命令且VSCode可断点调试;首先确认系统终端中node -v和npm -v可用,若报错则需修复PATH;再生成正确launch.json,program字段须用${workspaceFolder}变量指向入口文件,调试复杂项目推荐attach模式而非launch。

能跑 node 命令,且 VSCode 能断点调试,才算真正搭好了——其余插件、格式化、TypeScript 都是锦上添花,不是刚需。
确认 node 和 npm 在系统终端可用
很多人卡在这一步却以为是 VSCode 的问题。打开系统终端(不是 VSCode 内置终端),执行:
node -v npm -v
如果报错 'node' is not recognized as an internal or external command(Windows)或 command not found: node(macOS/Linux),说明 Node.js 没进系统 PATH。
- LTS 安装时必须勾选
Add to PATH;漏选则需手动把 Node.js 安装目录(如C:\Program Files\nodejs或/usr/local/bin)加入环境变量 - Windows 用户避免将 Node.js 装在含中文或空格的路径下(如
D:\我的软件\nodejs),否则npm可能静默失败 - macOS/Linux 用
nvm的,确保source ~/.nvm/nvm.sh已写入~/.zshrc或~/.bash_profile,且新终端已加载;VSCode 最好从该终端启动(code .) -
npm -v必须成功——VSCode 调试器底层依赖npm启动脚本,不是可选项
生成并验证 launch.json 的 program 字段
VSCode 默认不带 Node.js 调试配置,launch.json 缺失会导致按 F5 报 Cannot find the configuration to launch。
- 按
Ctrl+Shift+P(macOS 是Cmd+Shift+P),输入并选择Debug: Open launch.json,选Node.js环境 - 生成的配置中,
"program"必须指向可执行入口文件,且是相对于工作区根目录的完整路径:推荐写成"${workspaceFolder}/index.js" - 错误写法:
"src/index.js"(缺变量前缀,VSCode 找不到)、"./src/index.js"(.不被解析)、"node_modules/.bin/ts-node"(软链不可靠) - 若入口是
.ts文件,不能直接设program为.ts路径,除非已配preLaunchTask触发编译,否则会报Cannot launch program because corresponding JavaScript cannot be found
区分 launch 和 attach 模式,别硬套模板
调试 Express/Koa/CLI 等实际项目时,launch 模式常因端口占用、环境变量缺失或子进程 fork 失败而卡住;attach 更贴近真实运行态,也更稳。
- 用
attach:先终端执行node --inspect-brk ./bin/www(加--inspect-brk停在第一行),再在launch.json中配"request": "attach"、"port": 9229 - 端口必须一致:若命令用了
--inspect=9230,launch.json的port就得同步改成9230,否则连不上 - 不要同时起两个
--inspect进程,端口冲突会报Could not connect to debug target - 想调试
npm start?把"program"改成"npm",加"args": ["start"]和"console": "integratedTerminal",否则看不到输出
nodemon 热重载调试别直接写在 program 里
VSCode 调试器不支持进程热替换,program 字段填 nodemon 会导致调试器无法接管进程,断点失效。
- 正确做法是用
attach模式:终端先跑nodemon --inspect-brk index.js,再在launch.json中配置"request": "attach" - 或者用
runtimeExecutable:设"runtimeExecutable": "${workspaceFolder}/node_modules/.bin/nodemon",并加"runtimeArgs": ["--inspect-brk", "${workspaceFolder}/index.js"] - 注意:全局安装的
nodemon路径可能不被识别,优先用本地node_modules/.bin/下的可执行文件 - 别在
runtimeArgs里重复加--inspect—— VSCode 会自动注入,重复导致address already in use
最易被忽略的是:VSCode 启动后不会自动刷新系统环境变量,PATH 改了必须重启 VSCode;还有,launch.json 里的路径变量(如 ${workspaceFolder})只在保存后才生效,改完没保存就调试,照样找不到文件。


















