node.js 的 node 命令报 “command not found” 是因系统未将 node.js 路径加入 path 环境变量,需先在原生终端验证 which node 或 where node,再根据 macos/linux/zsh 配置、windows/nvm-windows 切换、或安装损坏等情况针对性修复。

终端里 node 命令报 “command not found”
不是 VS Code 的问题,是系统根本没把 Node.js 的安装路径加进环境变量。VS Code 终端(无论是集成终端还是外部终端)启动时,会读取你系统的 PATH,如果 Node.js 安装完没被加入,它就“看不见”。常见于 macOS 用 Homebrew 装完不重启终端、Windows 用默认 installer 但勾选了“Add to PATH”却因权限失败、或 Linux 手动编译安装后没改 ~/.bashrc / ~/.zshrc。
实操建议:
- 先在系统原生终端(macOS Terminal、Windows CMD/PowerShell、Linux GNOME Terminal)里运行
which node(macOS/Linux)或where node(Windows),确认 Node.js 是否真能被系统识别 - 如果原生终端也报错,说明 Node.js 根本没正确安装或路径未生效——别折腾 VS Code,先修系统环境
- 如果原生终端正常,但 VS Code 终端不行:关掉所有 VS Code 窗口,**完全退出进程**(macOS 右键 Dock 图标 → Quit;Windows 任务管理器结束
Code.exe进程),再重新打开——很多用户只是“关闭窗口”,VS Code 后台仍在运行,不会重载 shell 环境
Windows 上用 nvm-windows 切换 Node 版本后终端失效
nvm-windows 默认通过修改系统环境变量来切换 NODE_HOME 和 PATH,但它只改注册表里的“系统变量”或“用户变量”,而 VS Code 启动时可能读的是旧快照,尤其当你用快捷方式或开始菜单启动时。
实操建议:
- 每次用
nvm use切换后,必须在 VS Code 里重启集成终端:按Ctrl+Shift+P→ 输入 “Terminal: Reload Shell Environment”,或者直接关掉当前终端 tab 再新建一个 - 不要依赖“自动继承”,nvm-windows 的环境变更不是实时广播给已运行进程的
- 检查
nvm root和nvm version输出是否一致,有时nvm install成功但nvm use没真正激活(比如目标版本没真正下载完)
macOS 使用 zsh 但 VS Code 终端加载的是 bash 配置
VS Code 默认调用 zsh,但它不一定读 ~/.zshrc —— 如果你之前改过 shell 或 VS Code 启动方式(比如从 Dock 启动而非命令行),它可能 fallback 到系统默认 shell(老系统可能是 bash),导致 export PATH=... 那行没执行。
实操建议:
- 在 VS Code 集成终端里运行
echo $SHELL和ps -p $$,确认当前 shell 是zsh还是bash - 如果显示
bash,去 VS Code 设置搜terminal.integrated.defaultProfile,设为zsh;同时确保~/.zshrc里有export PATH="/opt/homebrew/bin:$PATH"(Homebrew)或对应 Node 安装路径 - 别把 Node 路径写死在
~/.zprofile里就以为万事大吉——zprofile只在登录 shell 读,而 VS Code 终端通常是 non-login shell,优先读~/.zshrc
Node.js 装了但 npm 能用、node 不能用
这通常不是路径问题,而是安装包损坏或符号链接断裂。Node.js 安装器(尤其是 Windows MSI 或 macOS pkg)有时会把 node 二进制和 npm 分开处理,npm 可能被单独注册进了 PATH,而 node 没跟上。
实操建议:
- 在原生终端运行
ls -l $(which npm),看它指向哪;再试试ls -l $(dirname $(which npm))/../bin/node(Unix)或dir "%APPDATA%\npm\node.exe"(Windows),确认node文件是否存在 - 如果存在但路径不在 PATH 中,手动把那个目录加进去(如
/usr/local/bin或%APPDATA%\npm) - 更干脆的办法:卸载后用官方二进制包重装(非 installer),解压到固定路径(如
/opt/node),然后在~/.zshrc里写死export PATH="/opt/node/bin:$PATH"—— 避免 installer 的黑盒逻辑
最常被忽略的一点:VS Code 终端的环境变量继承自它的父进程,而这个父进程可能是你很久以前启动的桌面会话。哪怕你改了 shell 配置文件,不彻底重启桌面环境(或至少重启 VS Code 主进程),那些改动就不会生效。别猜,先 echo $PATH 看真实值。










