nvm安装低版本的node失败(The system cannot find the file specified)
问题背景
最近一个旧项目需要用到老版的node(v14.17.5),使用nvm安装时失败了,报错信息如下:
Downloading node.js version 14.21.3 (64-bit)…
Complete
Downloading npm…
Creating C:\Users\ADMINI~1\AppData\Local\Temp\nvm-install-800235382\temp
Downloading npm version 6.14.18… Complete
Installing npm v6.14.18…
error installing 14.21.3: open C:\Users\ADMINI~1\AppData\Local\Temp\nvm-npm-1897096766\npm-v6.14.18.zip: The system cannot find the file specified.
原因分析
1. npm 镜像或下载问题
- 最新版 Node.js(如 v24.5.0)通常自带最新的 npm,可能直接从 Node.js 官方镜像下载,不依赖额外的 npm 包。
- 而旧版本(如 v14.17.5 )在安装时,NVM 会额外下载对应版本的 npm(如
npm-v6.14.14.zip
),但由于你的镜像配置或网络问题,npm 包下载失败或解压失败。
2. NVM 的缓存或临时目录问题
- NVM 尝试访问临时目录中的 npm zip 文件,但文件不存在或无法读取。
- 可能是由于:
- 防病毒软件拦截了下载或解压。
- 临时目录权限问题(特别是 Windows 的短路径
XAIOXI~1
可能引发问题)。 - 下载的 npm 包损坏。
3. 镜像配置不兼容旧版本
-
一般在安装nvm时会配置镜像,如下面这样
node_mirror: https://npmmirror.com/mirrors/node/ npm_mirror: https://npmmirror.com/mirrors/npm/
但
npmmirror.com
可能没有正确托管旧版本的 npm 包(如npm-v6.14.14.zip
),导致下载失败
解决方案
一、直接下载对应版本包(推荐)
1、下载版本包
去https://registry.npmmirror.com/binary.html?path=node/找到自己想要node版本,例如 v14.17.5,然后下载对应的zip包:
2、解压到nvm安装目录
在nvm安装目录下新增一个只有版本号的文件夹,例如 v14.17.5,然后将压缩包内容解压到这个文件夹里
3、确认并使用
cmd窗口里输入nvm ls
查看是否存在,然后执行命令nvm use 14.17.5
进行使用
二、降低nvm版本
1、卸载当前nvm
打开控制面板,在卸载程序中找到nvm,直接卸载
2、安装1.1.10版本
在https://www.nvmnode.com/guide/download.html找到1.1.10版本下载并安装
3、安装node
nvm install 14.17.5