能跑node -v和npm -v且F5断点调试成功,才算环境真正就位;需先在系统终端验证二者可用,再确保VSCode继承PATH、launch.json中program设为"${file}"或正确入口路径,并保存文件后调试。

能跑 node -v 和 npm -v,且 VSCode 按 F5 能断点调试,才算环境真正就位——其他插件、格式化、TypeScript 都是后续优化项,不是启动门槛。
验证 node 和 npm 是否真在系统 PATH 里
很多人卡在“VSCode 里 node -v 报错”,但系统终端(cmd / Terminal.app / gnome-terminal)里却能正常输出版本号。这说明 Node.js 安装了,但没进 VSCode 继承的环境变量。
- Windows 用户:重装 Node.js 时必须勾选 Add to PATH;若漏选,手动把安装目录(如
C:\Program Files\nodejs)加进系统环境变量Path,然后关掉所有 VSCode 窗口再重启 - macOS/Linux 用户:用
nvm的,确认source ~/.nvm/nvm.sh已写入~/.zshrc或~/.bash_profile,且新终端已加载;用homebrew的,检查which node输出路径是否在 shell 配置的PATH中 - 别只信 VSCode 内置终端——先在系统终端里跑
node -v和npm -v,两者都成功,才是可靠起点
launch.json 的 program 字段别写死
VSCode 自动生成的 launch.json 默认是 "program": "${workspaceFolder}/app.js",一旦你换文件名(比如改成 index.js 或 server.js),F5 就直接失败。
- 开发单文件脚本时,设为
"program": "${file}"—— 这样当前打开哪个 .js 文件,就运行哪个 - 项目有固定入口(如
index.js),可设为"program": "${workspaceFolder}/index.js",但别用相对路径如"./index.js",VSCode 解析可能出错 - 改完配置后务必保存
launch.json,否则调试器仍读旧值 - 调试前记得按
Ctrl+S(Windows/Linux)或Cmd+S(macOS)保存当前文件——VSCode 不会自动保存未存文件就调试
npm 全局工具(如 nodemon)在 VSCode 里找不到?
现象是:系统终端能用 nodemon index.js,但在 VSCode 终端里提示 command not found: nodemon。这不是插件问题,而是 VSCode 终端没加载你 shell 里的 npm prefix 路径。
- 先查全局路径:
npm config get prefix,常见值如D:\npm-global(Windows)或/usr/local(macOS) - 把这个路径加进系统
PATH(Windows)或 shell 配置(macOS/Linux),并确保 VSCode 启动时能读到 - 最简单验证法:关掉所有 VSCode 窗口,重新从命令行启动:
code --no-sandbox(macOS)或双击图标(Windows),避免继承旧环境 - 如果用了
npm config set prefix改过路径,记得重装工具:npm install -g nodemon
断点不命中?先看 package.json 有没有 type 字段
写了 import 却打不中断点,控制台报 Cannot launch program because corresponding JavaScript cannot be found,大概率是 Node.js 按 CommonJS 解析,但源码是 ES Module 语法。
- 在项目根目录的
package.json里加一行:"type": "module",让 Node.js 默认启用 ES Module - 如果已有
type: "commonjs",删掉或改成"module";没这字段则默认是 CommonJS,import会直接报错 - 注意:改完
package.json后,VSCode 调试器需要重启才能识别新配置 - TS/webpack 项目另说——那种情况得看 source map 是否生成、路径是否对齐,不在这个简易范围里
真正的坑不在配置多复杂,而在环境变量是否被 VSCode 正确继承、package.json 是否声明模块类型、以及调试前有没有手动保存文件——这三个点踩中任意一个,都会让你以为是 VSCode 有问题。


















