使用 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+,可減少兼容性問題。