vscode里node -v报错根本原因是环境变量未继承:macos/linux需终端执行code .启动或彻底重启vscode,windows需确认add to path并手动添加c:\program files\nodejs到系统path,验证标准是vscode内置终端中node -v和npm config get prefix均有输出。

VSCode 里 node -v 报错,不是 VSCode 的问题,而是系统环境根本没通——所有后续配置都得停在这一步。
node -v 在系统终端能跑,但在 VSCode 终端报 command not found
这说明 VSCode 启动时没加载你的 shell 初始化文件(比如 ~/.zshrc 或 ~/.bash_profile),导致它看不到你配的 PATH 和 npm config。
- macOS/Linux:别从 Dock 或 Spotlight 启动 VSCode;在终端执行
code .打开项目,或彻底重启 VSCode(关掉所有窗口再重开) - Windows:确认 Node.js 安装时勾选了
Add to PATH;若漏了,手动把C:\Program Files\nodejs加进“系统变量”的Path,然后重启 VSCode - 验证唯一标准:在 VSCode 内置终端(
Ctrl + `)里运行node -v和npm config get prefix,两个都有输出才算过关
launch.json 中 program 字段填什么才不启动失败
填错 program 是调试失败最常见原因,错误不是语法问题,而是路径根本找不到可执行 JS 文件。
- 单文件临时调试:用
"${file}"—— 注意不是${fileBasename},它会自动指向当前编辑器打开的文件 - 项目有固定入口(如
index.js或server.js):写成"${workspaceFolder}/index.js",确保该路径下真实存在这个文件 - ESM 项目(含
"type": "module"):不能直接指向.ts或未编译源码;必须指向已生成的.js,且 launch.json 中加"env": {"NODE_OPTIONS": "--enable-source-maps"} - 别写相对路径如
"./src/index.js"——如果工作区根目录不在项目顶层,路径会解析错
想用 nodemon 热重载,但 F5 直接报错
VSCode 调试器不支持进程热替换,nodemon 不能直接塞进 program 字段里启动,否则会卡住或报错。
- 正确做法是 attach 模式:先在终端手动运行
nodemon --inspect-brk index.js - 再在
launch.json中配:"type": "node"、"request": "attach"、"port": 9229 - 注意:
--inspect-brk会让 nodemon 启动后暂停,等 VSCode 连上才继续执行,断点才能命中 - 如果改用
npm start,就别配program,改用"runtimeExecutable": "npm"+"runtimeArgs": ["start"],并加"console": "integratedTerminal"看输出
最容易被忽略的其实是环境继承链:shell 配置 → 终端启动方式 → VSCode 启动方式 → launch.json 解析路径。任何一个环节断开,node 就找不见,npm 就装不上,debug 就起不来——它不玄学,只是路径和上下文太容易错位。











