根本原因是VSCode启动时未加载shell配置文件(如~/.zshrc),导致PATH缺失Node路径;需手动将Node路径(如/opt/homebrew/bin)和npm全局bin路径(如~/.local/share/npm-global/bin)加入~/.zshrc,执行source生效,并彻底退出VSCode后从终端运行code .启动,再在内置终端验证node -v、npm -v及which node。

VSCode 在 macOS 上找不到 node 或 npm,不是插件没装好,也不是 VSCode 本身坏了——根本原因是它启动时没加载你的 shell 配置文件(比如 ~/.zshrc),PATH 里压根没有 Node 的路径。终端里能跑,VSCode 里报 command not found,90% 都卡在这一步。
为什么终端能用,VSCode 内置终端却不行
macOS GUI 应用(包括从 Dock、Spotlight 或 Finder 双击启动的 VSCode)不会自动执行 ~/.zshrc 或 ~/.zprofile,也就不会把 Homebrew 安装的 Node 路径(如 /opt/homebrew/bin)加进 PATH。
- 先在终端里运行
which node和which npm,确认它们的路径(常见为/opt/homebrew/bin/node或/usr/local/bin/node) - 检查该路径是否已写入
~/.zshrc(Homebrew 默认不自动写,得手动加):echo 'export PATH="/opt/homebrew/bin:$PATH"' >> ~/.zshrc - 立即生效:
source ~/.zshrc - 必须彻底退出所有 VSCode 进程(菜单栏 → Code → Quit Visual Studio Code),再从终端启动:
code .
验证环境是否真正就绪
别只信系统终端,要信 VSCode 自己的终端——这是唯一靠谱的验收方式。
- 打开 VSCode,按
Ctrl + `呼出内置终端 - 依次执行:
node -v、npm -v、which node - 三者都应有输出,且
which node输出路径需与你在~/.zshrc中配置的一致 - 如果
npm报权限错误(EACCES),说明全局模块装在了系统目录;应改用自定义 prefix:npm config set prefix ~/.local/share/npm-global,再把该路径加入~/.zshrc的 PATH
npm 镜像和全局工具别漏配
国内不换镜像,npm install -g 很可能卡死或失败;不改全局路径,nodemon、@vue/cli 等工具装完也找不到。
- 换淘宝镜像(当前有效):
npm config set registry https://registry.npmmirror.com - 设自定义全局路径(推荐放用户目录下):
npm config set prefix ~/.local/share/npm-global - 把这个路径加进
~/.zshrc:export PATH="$HOME/.local/share/npm-global/bin:$PATH" - 重装关键工具:
npm install -g nodemon @vue/cli - 验证:
nodemon --version在 VSCode 终端里能输出才算真生效
launch.json 调试入口别写错
哪怕环境全通了,program 字段写错照样断点灰掉、提示 “Cannot launch program”。
- 后端项目固定入口(如
src/index.js):写成"program": "${workspaceFolder}/src/index.js" - 别用相对路径字面量:
"program": "src/index.js"或"program": "./src/index.js"都无效 - TypeScript 项目不要指
.ts文件;要么编译到dist/后指向dist/index.js,要么用runtimeExecutable: "npx"+runtimeArgs: ["ts-node", "src/index.ts"] - ESM 项目必须在
package.json根目录加"type": "module",否则import会直接崩
最常被跳过的动作是:改完 ~/.zshrc 后只重启终端,不彻底退出 VSCode;或者换了 npm 镜像和 prefix,却没重装全局工具。这两步一漏,前面全白配。


















