必须先让node -v在vscode内置终端输出版本号,否则后续所有操作均无效;需验证path继承是否生效,windows重装node并勾选add to path,macos/linux改完shell配置后彻底重启vscode。

node 命令在 VSCode 终端里跑不起来,就别谈运行脚本——所有后续操作都会卡在这一步。必须先让 node -v 在 VSCode 内置终端(Ctrl + `)里输出版本号,否则配置 launch.json、装插件、写 console.log 全是白忙。
验证 node 是否真正可用
不是看系统终端能跑,而是看 VSCode 自己的终端能不能认:node -v 必须有输出,比如 v20.15.0。没输出?说明 VSCode 没继承到 PATH,和插件、设置、launch.json 都无关。
- Windows:重装 Node.js,务必勾选 “Add to PATH”;安装后彻底退出 VSCode 再打开,不要只关终端
- macOS/Linux:改完
~/.zshrc或~/.bash_profile后,不能只source,必须重启 VSCode;更可靠的是从终端执行code .启动项目 - 路径别含中文或空格:比如
C:\我的工具\nodejs\容易出问题,优先用C:\Program Files\nodejs\
直接运行单文件脚本(不依赖 package.json)
别一上来就 npm init,先用最简方式验证 JS 运行时是否通。新建 hello.js,内容只有一行:console.log("Hello World");,然后在 VSCode 终端里手动执行:
node hello.js
看到输出才算过第一关。注意:
- 文件名必须带
.js扩展名,hello不行 - 别用右键“Run Code”之类快捷方式——初期掩盖路径或权限问题,手敲
node更可控 - 如果报
Cannot use import statement outside a module,说明用了import但没设 ESM 模式,先删掉import改用require()测试
配置 code-runner 插件防乱码和 ESM 报错
它默认命令是 node $fileName,太简陋,遇到中文、ESM、交互输入就崩。需要手动改配置项:
- 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 不支持输入,换到终端手敲node script.js,或改用 F5 调试
调试时 program 字段指向必须真实可执行
断点不生效、报 Cannot launch program because corresponding JavaScript cannot be found,基本都是 launch.json 里 program 指错了。
-
"program": "${file}"只适用于当前打开的单个 JS 文件 - 若入口是
src/index.js,得写死:"program": "${workspaceFolder}/src/index.js" - TypeScript 或打包项目(Vite/Webpack),
program必须指向编译后的.js文件(如dist/index.js),不是.ts源码 - ESM 项目漏了
"type": "module",调试器会按 CommonJS 解析,import 路径全错
node 就找不到,后面所有动作都失去基础。











