VSCode本身不带Node.js,必须正确继承系统PATH才能找到node命令;macOS/Linux需确保~/.zshrc生效并重启VSCode或用code .启动,Windows需在系统环境变量中添加Node.js路径,唯一验证方式是在VSCode内置终端执行node -v。

VSCode 本身不带 Node.js,所谓“导入外部 Node 环境”,本质就是让它能正确找到你系统里已装好的 node 命令——找不到,后续所有运行、调试、插件功能全失效。
VSCode 启动后 node -v 报 command not found
这不是插件没装、不是 launch.json 写错,而是 VSCode 没继承 shell 的 PATH。
- macOS/Linux:从 Dock 或 Spotlight 启动 VSCode 时,
~/.zshrc或~/.bash_profile不会被加载;改完环境变量后只source ~/.zshrc没用,必须重启 VSCode,或直接在终端执行code .启动 - Windows:Node.js 安装时若没勾选 Add to PATH,系统级环境变量里就没有
C:\Program Files\nodejs\;需手动打开“系统属性 → 高级 → 环境变量”,把该路径加进“系统变量”的PATH,再重启 VSCode - 验证方式唯一:在 VSCode 内置终端(
Ctrl + `)里敲node -v—— 有输出才能继续配调试、跑脚本
code-runner 插件运行 JS 脚本失败或行为异常
它默认用 node $fileName 执行,不处理编码、模块类型、标准输入,极易出问题。
- 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进调试模式
配置 launch.json 后断点不命中或提示 Cannot launch program
错误信息不是代码语法错,而是调试器根本没找到可执行的 JS 文件,或 source map 路径对不上。
-
program字段必须指向一个真实存在的、能被node直接执行的 JS 文件,比如${workspaceFolder}/dist/index.js;不能是.ts、.jsx或未编译源码 - TypeScript 项目:需在
tsconfig.json中启用"sourceMaps": true,且编译后生成的index.js.map和index.js必须在同一目录 - ESM/CJS 混用场景下,
type: "module"和type: "commonjs"不能靠文件后缀自动推断,要显式声明,否则require()或import会直接报错
真正容易被忽略的点是:VSCode 内置终端的 PATH 和你日常使用的终端 PATH 可能不一致;哪怕 which node 在 iTerm 或 CMD 里能输出路径,也不代表 VSCode 继承了它。每次改完环境变量,别只信“应该好了”,一定要在 VSCode 自己的终端里亲手敲一遍 node -v。


















