解决 Node.js 版本冲突:Windows 系统 nvm 安装与使用全指南

nvm-windows 小白攻略:从安装到配置,Node.js 版本管理一步到位

一、为什么你需要 nvm?

想象一下:你正在开发一个老项目,它需要 Node.js 14,而你正在开发一个新项目,需要 Node.js 20。如果不用 nvm,你得反复卸载和安装 Node.js,这太麻烦了!而且很容易搞混,导致项目无法运行。

nvm(Node Version Manager)就像一个"Node.js版本切换器",让你在 Windows 上轻松安装、切换和管理多个 Node.js 版本,就像在不同手机上安装不同App一样简单。

重要提示 :Windows 上的 nvm 不是官方的(官方 nvm 只支持 macOS/Linux),而是社区维护的 nvm-windows,由 Corey Butler 开发。

二、准备工作:彻底卸载旧版 Node.js

为什么必须卸载?

nvm 会与已安装的 Node.js 冲突,导致各种奇怪的问题。就像在同一个房间里同时放两台空调,会互相打架。

卸载步骤(手把手教学)
  1. 打开控制面板
    • 按 Win + R,输入 appwiz.cpl,回车
    • 或者在开始菜单搜索"控制面板" → "程序" → "程序和功能"
  2. 卸载 Node.js
    • 找到 Node.js,右键 → "卸载"
    • 如果有多个版本,全部卸载
  3. 删除残留文件
    • 按 Win + R,输入 %ProgramFiles%,回车
    • 找到 nodejs 文件夹,删除(如果存在)
    • 按 Win + R,输入 %AppData%,回车
    • 找到 npm 和 nodejs 文件夹,删除
  4. 清理环境变量
    • 按 Win + R,输入 sysdm.cpl,回车
    • "高级" → "环境变量"
    • 在"系统变量"和"用户变量"中,找到 Path
    • 点击"编辑" → "查看变量值"
    • 删除所有包含 node 或 npm 的路径
    • 点击"确定" → "确定" → "确定"
  5. 验证卸载是否成功
    • 打开命令提示符(CMD)或 PowerShell
    • 输入 node -v 和 npm -v
    • 如果显示"不是内部或外部命令",说明卸载成功

为什么这么麻烦?

因为 Windows 会把 Node.js 安装到系统路径,如果不彻底清理,nvm 无法正常工作。

三、下载并安装 nvm-windows

1. 访问官方 GitHub 仓库
2. 下载安装包
  • 找到最新版本(如 nvm-setup.zip 或 nvm-setup.exe)
  • 重要 :不要下载 nvm-noinstall.zip,这是手动安装的,新手容易出错
  • 点击下载 nvm-setup.exe(图形化安装程序,新手推荐)
3. 安装 nvm
  • 双击 nvm-setup.exe(如果弹出安全警告,点击"是")
  • 安装向导:
    • 点击"Next"
    • 接受许可协议 → 点击"Next"
    • 安装路径 (建议默认):C:\Users\你的用户名\AppData\Local\nvm
    • 符号链接路径 (关键!):C:\Program Files\nodejs(不要包含空格或中文)
    • 点击"Install" → "Finish"

为什么符号链接路径要设为 C:\Program Files\nodejs?

这是 Windows 的标准路径,nvm 会在这里创建一个"快捷方式",指向你安装的 Node.js 版本。这样,当你在命令行输入 node,系统会自动找到正确的版本。

4. 重启命令行工具
  • 重要 :安装完成后,必须重启 CMD 或 PowerShell,否则环境变量不会生效

四、验证 nvm 是否安装成功

  1. 以管理员身份打开 CMD 或 PowerShell

    • 在开始菜单搜索"cmd"或"PowerShell"
    • 右键 → "以管理员身份运行"
  2. 输入以下命令:

    bash 复制代码
    nvm version
  3. 如果显示版本号(如 1.1.12),说明安装成功!

如果提示 'nvm' 不是内部命令?

  • 确认是否彻底卸载了旧版 Node.js
  • 确认是否重启了命令行工具
  • 检查环境变量是否包含 nvm 路径(通常安装程序会自动添加)

五、使用 nvm 安装 Node.js

1. 查看可安装的 Node.js 版本
bash 复制代码
nvm list available
  • 这会显示所有官方支持的版本,包括:
    • LTS(长期支持版,稳定版,推荐用于生产环境)
    • Current(最新版,可能不稳定,推荐用于开发)
2. 安装指定版本(推荐 LTS)

安装最新 LTS 版本:

bash 复制代码
nvm install lts

安装特定版本(如 20.12.0):

bash 复制代码
nvm install 20.12.0

安装主版本的最新版(如 18.x 最新版):

bash 复制代码
nvm install 18

为什么安装这么慢?

默认从官方服务器下载,速度较慢。别担心,我们后面会配置国内镜像加速!

3. 查看已安装的版本
bash 复制代码
nvm list
  • 输出示例:

    复制代码
    * 20.12.0 (Currently using 64-bit executable)
      18.17.0
    • * 表示当前正在使用的版本

六、切换 Node.js 版本

bash 复制代码
nvm use 20.12.0
  • 成功后会显示:Now using node v20.12.0

重要提示 :切换后,node -v 和 npm -v 会立即反映新版本!

切换到最新 LTS 版本
bash 复制代码
nvm use lts
切换到主版本的最新子版本
bash 复制代码
nvm use 18
查看当前版本
bash 复制代码
nvm current

七、配置国内镜像源(加速下载)

为什么需要配置镜像?
  • 默认从 nodejs.org 下载,国内用户速度慢
  • 配置国内镜像后,下载速度提升 5-10 倍
配置步骤
  1. 打开 nvm 安装目录:

    • 按 Win + R,输入 %LOCALAPPDATA%\nvm,回车
    • 或者打开 C:\Users\你的用户名\AppData\Local\nvm
  2. 编辑 settings.txt 文件:

    • 如果没有 settings.txt,新建一个
    • 用记事本打开(右键 → "编辑")
  3. 添加以下内容:

    复制代码
    node_mirror: https://npmmirror.com/mirrors/node/
    npm_mirror: https://npmmirror.com/mirrors/npm/
  4. 保存文件

npmmirror 是什么?

这是淘宝提供的 NPM 镜像站,国内访问速度快,是 npm 的国内镜像,类似 "国内加速版"。

验证镜像是否生效
  • 重新安装一个版本:

    bash 复制代码
    nvm install 20.12.0
  • 观察下载速度,应该快很多!

八、设置默认版本(永久生效)

bash 复制代码
nvm alias default 20.12.0
  • 这样,每次打开新的 CMD/PowerShell,都会自动使用 20.12.0 版本
  • 以后就不需要每次手动 nvm use 20.12.0 了
查看默认版本
bash 复制代码
nvm alias
  • 输出示例:

    复制代码
    default -> 20.12.0

九、常用命令速查表(小白必看)

命令 作用 示例
nvm version 查看 nvm 自身版本 nvm version
nvm list 查看已安装的 Node.js 版本 nvm list
nvm list available 查看可安装的 Node.js 版本 nvm list available
nvm install 20.12.0 安装指定版本 nvm install 20.12.0
nvm install lts 安装最新 LTS 版本 nvm install lts
nvm install latest 安装最新 Current 版本 nvm install latest
nvm use 20.12.0 切换到指定版本 nvm use 20.12.0
nvm use lts 切换到最新 LTS 版本 nvm use lts
nvm current 查看当前使用的版本 nvm current
nvm alias default 20.12.0 设置默认版本 nvm alias default 20.12.0
nvm uninstall 20.12.0 卸载指定版本 nvm uninstall 20.12.0

十、常见问题解决

问题1:nvm use 报错 "exit status 1: Access is denied."

原因:权限不足,无法创建符号链接。

解决方法:

  1. 以管理员身份打开 CMD 或 PowerShell
  2. 或者在安装 nvm 时,确保目标路径(如 C:\Program Files\nodejs)有写入权限

为什么需要管理员权限?

Windows 为了安全,要求创建符号链接必须有管理员权限。

问题2:切换版本后 npm 命令失效

原因:npm 是随 Node.js 一起安装的,每个版本自带独立的 npm。

解决方法:

  1. 确保使用 nvm use 正确切换
  2. 不要手动修改 PATH 中的 npm 路径
  3. 重启命令行工具
问题3:下载速度慢或失败

解决方法:

  1. 确认已配置国内镜像(见"配置国内镜像源"部分)

  2. 如果仍然慢,尝试更换镜像:

    复制代码
    node_mirror: https://npmmirror.com/mirrors/node/
    npm_mirror: https://npmmirror.com/mirrors/npm/
问题4:nvm 命令在新窗口中无法使用

原因:环境变量未正确更新。

解决方法:

  1. 重启电脑(最简单有效)
  2. 或者重启命令行工具(CMD/PowerShell)

十一、高级技巧

1. 为项目设置特定 Node.js 版本(配合 .nvmrc)
  1. 在项目根目录创建 .nvmrc 文件

  2. 文件内容:20.12.0(指定版本)

  3. 在项目目录中运行:

    bash 复制代码
    nvm use
    • nvm 会自动切换到 .nvmrc 指定的版本

为什么需要这个?

当你和团队一起开发项目时,确保大家使用相同的 Node.js 版本,避免"在我电脑上能运行"的问题。

2. 同时安装多个常用版本
bash 复制代码
nvm install 18
nvm install 20
nvm install 22
  • 这样你就可以在不同项目中使用不同版本
3. 检查是否为 64 位版本
bash 复制代码
node -p "process.arch"
  • 输出应为 x64(表示 64 位版本)

十二、总结:为什么 nvm 是开发者的必备工具?

  1. 避免版本冲突:不用反复卸载重装 Node.js
  2. 快速切换 :nvm use 18 一秒切换到 Node 18
  3. 提高效率:不用等待漫长的下载,配置镜像后下载速度飞快
  4. 团队协作 :通过 .nvmrc 确保团队使用相同 Node.js 版本

最佳实践建议:

  • 日常开发使用 LTS 版本(如 20.x)
  • 用 nvm alias default 设置主力版本
  • 定期清理不用的旧版本:nvm uninstall 16.14.0

附录:资源链接


现在,你已经掌握了在 Windows 上用 nvm 管理 Node.js 的全部技能!

快去试试吧!你会发现,管理多个 Node.js 版本不再是难题,而是开发中的小确幸。

相关推荐
cuijiecheng20181 小时前
Windows 下使用 GitHub Private Repository 管理私人 Visual Studio/C++ 项目
windows·github·visual studio
搬砖的小码农_Sky10 小时前
AI Agent:如何处理Claude Code 最近版本(2026年更新)引入的模型上下文限制
人工智能·windows·ai·ai编程
kakakahahahaha11 小时前
Windows C盘临时文件清理:%temp%、Windows Temp、Prefetch、Windows.old与hiberfil.sys处理指南
c语言·开发语言·windows
hasty11 小时前
不上传新包,也能改变用户拿到的版本:npm dist-tag 的 OIDC 权限治理
前端·npm·node.js
山岚的运维笔记14 小时前
ComfyUI NVIDIA安装教程:官方便携版下载+run_nvidia_gpu.bat启动,8G显存Windows实操
运维·服务器·windows·笔记·prompt·aigc·comfyui
kakakahahahaha16 小时前
LoadLibrary failed with error 87 排查:ERROR_INVALID_PARAMETER、DLL路径、架构与显卡驱动
windows·电脑·笔记本电脑·nvidia·软件需求
百事牛科技18 小时前
7Z分卷文件怎么打开?7-Zip解压方法详解
windows·7-zip
2301_7893804921 小时前
【踩坑记录】Windows资源管理器无限重启,改注册表、看日志
windows·经验分享·笔记
sukalot1 天前
Windows 驱动实例分析系列:libwdi 驱动分析 - libwdi 篇(五)
windows·驱动开发
(Charon)1 天前
【C/C++面试】手写内存池:从空闲链表到内存申请与释放
java·开发语言·windows