切换Node版本后npm无法使用的问题求助(Windows+NVM环境)
解决Windows下nvm切换Node版本后npm脚本找不到node的问题
核心问题
你在cmd里能正常识别node,但npm执行脚本时调用了bash环境,而bash中未正确加载nvm的Node环境变量,导致出现node: command not found错误。
解决步骤
1. 配置bash环境自动加载nvm
打开Git Bash,编辑~/.bashrc或~/.bash_profile文件(无则新建),添加以下内容:
export NVM_DIR="$HOME/.nvm" [ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" [ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion"
保存后执行source ~/.bashrc使配置生效,再运行:
nvm use 20.10.0 node -v
确认输出v20.10.0,说明bash已正确加载Node环境。
2. 修改npm默认脚本执行shell
强制npm使用cmd或PowerShell执行脚本,避开bash环境:
npm config set script-shell "cmd.exe"
若偏好PowerShell,可改为:
npm config set script-shell "powershell.exe"
3. 清理缓存后重装依赖
- 删除项目根目录下的
node_modules文件夹和package-lock.json文件 - 清理npm全局缓存:
npm cache clean --force - 重新执行安装命令:
npm install
4. 验证多终端版本一致性
确保所有终端(cmd、Git Bash)都激活了同一Node版本:
- cmd中运行
nvm list确认20.10.0为当前使用版本 - Git Bash中运行
nvm use 20.10.0,再用node -v验证版本正确性
内容的提问来源于stack exchange,提问作者ImEmo
相关产品推荐
相关产品推荐

