NVM 环境配置与 npm 找不到的排查

macOS / Linux 上配 nvm

先确认 nvm 安装位置:

echo $NVM_DIR

通常是 ~/.nvm。在 ~/.zshrc(zsh)或 ~/.bashrc(bash)末尾加:

export NVM_DIR="$HOME/.nvm"
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh"
[ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion"

生效并验证:

source ~/.zshrc
nvm -v

Windows 上配 nvm-windows

先看 nvm 目录:

nvm root

通常输出:

C:\Users\<你>\AppData\Roaming\nvm

系统环境变量里加两条:

NVM_HOME     = C:\Users\<你>\AppData\Roaming\nvm
NVM_SYMLINK  = C:\Program Files\nodejs

再把 Path 里追加:

%NVM_HOME%
%NVM_SYMLINK%

新开一个 CMD 窗口,验证:

nvm version
node -v
npm -v

常用命令速查

nvm install 22          # 装 Node 22
nvm list                # 已装版本
nvm use 22              # 切换版本
nvm alias default 22    # 设默认(macOS/Linux)
nvm current             # 当前使用版本

which node 有输出,但 npm not found

碰到这种情况:

$ which node
/Users/you/.nvm/versions/node/v22.21.1/bin/node

$ which npm
npm not found

有六种可能,从概率高到低排:

1. 只装了 nvm 没装 Node

nvm list          # 一片空
nvm install 22
nvm use 22

2. 版本没激活

nvm current       # 显示 none / N/A
nvm use 22

3. PATH 没指向当前 Node

echo $PATH        # 看有没有 .nvm/versions/node/v22.x.x/bin

4. Node 目录里 npm 文件真的没了

ls -lah /Users/you/.nvm/versions/node/v22.21.1/bin/

正常应该有 nodenpmnpxcorepack。只有 node 说明安装被中断过,重装:

nvm uninstall 22
nvm install 22

5. Windows:nvm-windows 软链坏了(最常见)

dir "C:\Program Files\nodejs"

看到目录是空的或者链接指向失效版本,重新 nvm use

nvm use 22.19.0

之后 where node / where npm 都会有结果。

6. Homebrew 装的 nvm 没加载环境

nvm use default
# 或
nvm install --lts

一句话总结

nvm 有问题时按这个顺序自检:nvm listnvm currentwhich node / which npm → 检查 bin 目录是否完整。95% 的问题都是”没 use 版本”或”软链坏了”。