使用nvm安装Node.js18以下报错解决方案——The system cannot find the file specified.
使用 nvm 安装 Node.js 18以下 报错解决方案
在前端开发过程中,常常需要针对不同项目切换 Node.js 版本。nvm(Node Version Manager)是最常用的工具。但最近在尝试安装 Node.js 14 版本时,遇到了奇怪的错误。
问题描述
使用 nvm 1.2.2 安装 Node.js 14.x(或更低版本)时报错:
C:\Users\cxstar36>nvm install 14.14.0
Downloading node.js version 14.14.0 (64-bit)...
Complete
Downloading npm...
Creating C:\Users\cxstar36\AppData\Local\Temp\nvm-install-1375455094\tempDownloading npm version 6.14.8... Complete
Installing npm v6.14.8...
error installing 14.14.0: open C:\Users\cxstar36\AppData\Local\Temp\nvm-npm-238449251\npm-v6.14.8.zip: The system cannot find the file specified.
同样的问题也出现在 14.21.3 等版本:
error installing 14.21.3: open C:\Users\xxxx\AppData\Local\Temp\nvm-npm-2046767612\npm-v6.14.18.zip: The system cannot find the file specified.
但奇怪的是,安装 Node.js 18 及以上版本完全正常
排查过程
- 确认权限:检查了是否是权限问题,但以管理员运行同样报错。
- 检查路径:排除了临时目录路径过长或特殊字符问题。
- 尝试不同版本 Node.js:发现 18 以上没问题,14/16 报错。
- 分析 nvm 下载逻辑:怀疑是 nvm 自带的 npm 下载逻辑不兼容。
经过查询资料最终定位到:问题出在 nvm-windows 版本 1.2.2。
解决方案
将 nvm-windows 降级到 1.1.12 即可正常安装 Node.js 14
卸载 nvm
进入 nvm 安装目录(例如 E:\ProgramFiles\nvm
),双击 unins000.exe
卸载或者控制面板直接卸载
安装 1.1.12 版本
下载地址:nvm-windows 1.1.12
安装完成后,再次执行:
nvm install 14.14.0
nvm use 14.14.0
建议:如果项目必须使用 Node.js 14/16,务必使用 nvm 1.1.12。如果是新项目,建议直接使用 Node.js 18+,可减少兼容性问题。