VSCode 能识别 node 命令且调试器可 attach 进程,才算 Node.js 全局环境配对成功;关键在系统 PATH 正确配置并被 VSCode 启动时继承,需检查 shell 配置文件(macOS/Linux)或系统环境变量(Windows),并彻底重启 VSCode。

VSCode 能识别 node 命令,且调试器能正常 attach 到进程,才算 Node.js 全局环境配对了——不是装上 Node 就完事,关键在系统 PATH 和 VSCode 启动时能否继承它。
终端里 node -v 有输出,但 VSCode 报 “command not found: node”
这是最典型的症状,本质是 VSCode 没拿到 shell 初始化后的完整 PATH。它启动时可能绕过了你的 ~/.zshrc 或 ~/.bash_profile(macOS/Linux),或没读取 Windows 系统环境变量的最新状态。
- macOS/Linux:检查
~/.zshrc(或~/.bash_profile)是否包含类似export PATH="/usr/local/bin:$PATH";Homebrew 安装的 Node 默认路径就是/usr/local/bin/node - Windows:确认安装 Node.js 时勾选了
Add to PATH;若漏了,手动把C:\Program Files\nodejs\加进「系统环境变量」的Path,不是用户变量 - VSCode 必须彻底重启:关掉所有窗口,再从系统 Dock(macOS)或开始菜单(Windows)重新打开;用命令行启动
code --no-sandbox反而容易继承旧环境,不推荐
code-runner 插件执行 JS 文件乱码或卡死
它默认用 node $fileName 执行,但不处理编码、不转发 stdin、也不适配 ES Module 语法,一碰到中文路径或 import 就崩。
- 改
code-runner.executorMap中javascript对应项为:node --experimental-specifier-resolution=node $fileName(支持.mjs和import) - Windows 下防乱码加
-r utf-8:node -r utf-8 $fileName - 别用它跑带
process.stdin的脚本——比如需要用户输入的 CLI 工具,code-runner根本不提供输入流,换集成终端手动跑
launch.json 调试断点不生效,提示 “Cannot launch program because corresponding JavaScript cannot be found”
VSCode 调试器(vscode-js-debug)找不到可执行的 JS 入口,常见于 TypeScript 编译、打包后路径错位,或误把源文件当运行目标。
立即学习“前端免费学习笔记(深入)”;
-
program字段必须指向编译/构建后的.js文件,比如"./dist/index.js",不能填./src/index.ts或./index.mjs - 如果用了 TypeScript,
tsconfig.json里必须设"sourceMap": true,且编译输出要保留.js.map文件 - 想调试
npm start?把program改成"npm",args设为["start"],并加"console": "integratedTerminal",否则看不到日志
真正容易被忽略的是:VSCode 调试器底层依赖 npm 启动逻辑,所以 npm -v 必须成功——哪怕你只写纯 JS 不用包管理,它也是调试链路里隐性的一环。


















