Windows版nvm安装旧版Node时下载npm失败且npm命令无法识别
问题根因
安装旧版本Node时,nvm拉取对应版本npm包触发TLS握手超时导致下载失败,程序抛出空指针异常,最终仅完成Node本体安装、缺失npm组件,因此切换版本后无法识别npm命令。新版Node可正常使用是因为对应npm包拉取过程未触发网络异常。
解决方案
方案1:修改nvm镜像源(推荐)
- 打开nvm安装根目录,找到
settings.txt配置文件 - 在文件末尾新增两行配置,指定国内Node和npm镜像源:
node_mirror: https://npmmirror.com/mirrors/node/ npm_mirror: https://npmmirror.com/mirrors/npm/
- 保存配置文件后完全关闭VS Code终端,重新打开终端执行以下命令重新安装旧版本:
- 卸载残缺版本:
nvm uninstall 10.24.1 - 重新安装:
nvm install 10.24.1
- 卸载残缺版本:
- 安装完成后执行
nvm use 10.24.1,再运行npm -v验证是否正常
方案2:手动补装npm
如果修改镜像后仍无法拉取npm,可手动补装对应版本:
- 执行
nvm use 10.24.1切换到目标Node版本,运行node -v确认版本生效 - 手动下载对应版本的npm压缩包,解压到当前Node版本目录下的
node_modules文件夹中,将解压后的文件夹重命名为npm - 进入
npm/bin目录,将目录下的npm、npx相关可执行文件复制到Node版本目录的根目录下 - 重启终端后执行
npm -v验证即可
注意事项
操作前请确保VS Code终端以管理员身份运行,避免权限不足导致文件写入失败。
内容的提问来源于stack exchange,提问作者miri W.
相关产品推荐
相关产品推荐

