一、准备工作:卸载旧版 Node.js
重要提示:在安装 NVM 前,请先彻底删除已安装的 Node.js,避免路径冲突:
-
检查安装路径
bash
where node
常见路径:
C:\Program Files\nodejs\
C:\Users\用户名\AppData\Local\nodejs\
-
卸载步骤:
- 通过控制面板卸载 Node.js 程序
- 删除上述路径下的所有文件
- 清理环境变量:
- 右键此电脑 → 属性 → 高级系统设置 → 环境变量
- 删除所有包含
nodejs
的系统变量和用户变量
为什么需要这样做?
NVM 通过自定义路径管理 Node 版本,若旧版 Node 存在:
- 可能导致
where node
返回错误路径 - 环境变量优先级冲突
- 版本管理混乱
二、NVM 安装与验证详解
1. 下载 NVM
bash
访问官方GitHub仓库:
https://github.com/coreybutler/nvm-windows/releases
选择带有nvm-setup
的最新.msi 文件(如nvm-setup_1.1.17.msi
)
2. 安装过程
- 运行安装程序时:
- 建议保持默认安装路径
C:\Program Files\nvm\
- 确保勾选 "Add to environment variables"
- 安装完成后需重启终端生效
- 建议保持默认安装路径
3. 验证安装
bash
where node
✅ 正常输出:
plaintext
C:\Program Files\nvm\v20.18.0\node.exe
❌ 异常情况处理:
- 若未找到路径:重新检查环境变量
- 若显示旧版路径:彻底删除旧版 Node.js
原理:
Windows 的where
命令会搜索系统 PATH 环境变量中的所有目录。NVM 安装时会将自身路径添加到 PATH 最前端,因此正常情况下应优先找到 NVM 管理的 Node.js 可执行文件。
4. 检查 NVM 版本
bash
nvm version
输出示例:
plaintext
1.1.17
三、版本管理深度解析
1. 查看可用版本
bash
nvm list-remote
输出说明:
plaintext
14.21.3 LTS (LTS: Erbium)
18.18.2 LTS (LTS: Hydrogen)
-> 20.18.0 Current (Latest LTS: Iron)
- 箭头标记表示当前最新 LTS 版本
- LTS 版适合生产环境(长期支持)
- Current 版包含最新特性(可能不稳定)
2. 安装指定版本
bash
nvm install 20.18.0
🔍 执行过程:
- 检查本地缓存是否存在该版本
- 从 Node.js 官网下载对应版本
- 解压到
C:\Program Files\nvm\v20.18.0
目录
3. 切换使用版本
bash
nvm use 20.18.0
🔄 切换原理:
- 修改
nvm
目录下的settings.txt
- 建立
current
软链接指向目标版本 - 自动更新系统临时环境变量
四、最终验证与维护
1. 检查 Node.js/npm 版本
bash
node -v
npm -v
✅ 预期输出:
plaintext
v20.18.0
10.2.0
2. 管理已安装版本
bash
nvm list
输出示例:
plaintext
18.18.2
* 20.18.0 (Currently using 64-bit executable)
3. 常用维护命令
bash
nvm uninstall 18.18.0 # 删除指定版本
nvm arch 64 # 切换64/32位版本
nvm proxy # 设置下载代理
五、常见问题解决方案
1. 网络下载失败
- 错误提示:
Request failed with status code 443
- 解决方案:
bash
nvm proxy http://your-proxy:port
2. 权限问题
- 错误提示:
Access is denied
- 解决方法:以管理员身份运行终端
3. 环境变量未生效
- 处理方式:重启终端或执行:
bash
refreshenv
4. 多版本共存
- 通过
nvm use
切换版本 - 项目级管理建议使用
.nvmrc
文件:bash
echo "20.18.0" > .nvmrc nvm use
验证逻辑总结
graph TD
A[执行where node] --> B{输出NVM路径?}
B -->|是| C[验证成功]
B -->|否| D[检查旧版Node.js残留]
E[执行nvm version] --> F{显示版本号?}
F -->|是| G[版本验证通过]
F -->|否| H[修复环境变量]
I[执行node -v] --> J{版本正确?}
J -->|是| K[完整验证通过]
J -->|否| L[重新执行nvm use]
截至2025年3月21日本方法仍然可用