【BUG】nvm无法安装低版本node及解决方法

一.场景

在使用 nvm 管理 Node.js 版本时,遇到一些比较老的项目需要安装低版本的 Node.js 时系统常常会出现报错,导致不能正常安装

二.原因分析

  • 版本特异性:主要影响Node.js 12.x、13.x、14.x等较低版本
  • 系统特异性:主要在Windows系统上出现
  • npm相关:错误通常发生在下载或安装npm阶段
  • 临时文件问题:错误信息指向临时文件路径

根本原因是nvm版本与Node.js版本的兼容性问题:

  • nvm版本过高:较新版本的nvm-windows(如1.2.2)与老版本Node.js的npm下载机制不兼容
  • 下载链接变更:npm的下载链接在不同时期有所变化,新版nvm可能无法正确处理老版本的下载链接
  • 临时文件处理:新版nvm在处理临时文件时的逻辑与老版本Node.js不匹配

版本兼容表:

nvm版本支持的Node.js版本范围推荐使用场景
1.1.128.x - 18.x需要老版本Node.js
1.2.x16.x - 最新只使用新版本Node.js

问题发生的技术流程

  1. nvm下载Node.js二进制文件 ✓ (成功)
  2. nvm尝试下载对应的npm版本 ✓ (成功)
  3. nvm尝试解压npm文件到临时目录 ✗ (失败)
  4. 系统报告找不到指定文件

三.解决方案

方案一:升级/降级 nvm 版本

步骤1:卸载当前 nvm

  1. 打开控制面板 → 程序和功能
  2. 查找 “nvm-windows”,点击卸载
  3. 按照提示完成卸载
  4. 删除 nvm 安装目录(通常是 C:\Users\{用户名}\AppData\Roaming\nvm

步骤2:安装兼容版本的 nvm

  1. 访问 nvm-windows 发布页面
  2. 下载版本 1.1.12 或更低版本
  3. 运行安装程序,完成安装
  4. 打开 PowerShell,验证安装:
    1
    nvm -v

步骤3:重新安装 Node.js

1
2
3
4
5
6
7
8
9
10
11
12
# 列出可用版本
nvm list available

# 安装指定版本(例如 12.22.0)
nvm install 12.22.0

# 使用该版本
nvm use 12.22.0

# 验证安装
node -v
npm -v

方案二:手动下载并安装(快速方案)

步骤1:下载 Node.js

  1. 访问 Node.js 官网
  2. 选择所需的低版本(如 12.x)
  3. 下载对应的 Windows 64-bit32-bit 版本(选择 .zip 格式)

步骤2:解压到 nvm 目录

1
2
3
4
5
# 假设下载的是 node-v12.22.0-win-x64.zip

找到 nvm 安装的目录
创建 v12.22.0 目录
解压

步骤3:配置 nvm 识别该版本

1
2
3
# 如果 nvm 未能自动识别,手动创建版本目录
# 使用 nvm use 12.22.0 激活使用
nvm use 12.22.0