Windows 下使用 nvm 安装与管理 Node.js(完整指南)

Windows 下使用 nvm 安装与管理 Node.js(完整指南)

目录

一、准备工作

1. 卸载已有的 Node.js(重要!)

二、下载并安装 nvm-windows

1. 访问官方 GitHub 仓库

2. 下载安装包

​3. 安装 nvm

三、验证 nvm 是否安装成功

四、使用 nvm 安装 Node.js

1. 查看可安装的 Node.js 版本

2. 安装指定版本(推荐 LTS)

3. 查看已安装的版本

五、切换 Node.js 版本

六、常用 nvm 命令速查

 1、基础信息类命令

 2、安装与卸载 Node.js

安装命令

卸载命令

3、版本查看与切换

4、设置默认版本(持久生效)

5、配置镜像源(加速下载)

6、清理与维护

7、高级技巧 & 实用组合

1. 快速安装并使用 LTS 版本

2. 同时安装多个常用版本

3. 查看某个项目所需的 Node 版本(配合 .nvmrc)

4. 检查是否为 64 位版本

七、常见问题解决

❌ 问题1:nvm use 报错 “exit status 1: Access is denied.”

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

❌ 问题3:下载速度慢或失败

八、总结


在开发过程中,你可能会遇到需要同时使用多个 Node.js 版本的情况:比如一个老项目依赖 Node 16,而新项目要求 Node 20。手动反复卸载重装不仅麻烦,还容易出错。

这时,nvm(Node Version Manager) 就派上用场了!它能让你在 Windows 上轻松安装、切换和管理多个 Node.js 版本。

📌 注意:Windows 上的 nvm 并非官方版本(官方 nvm 仅支持 macOS/Linux),而是由社区维护的 nvm-windows

本文将手把手教你如何在 Windows 10/11 上安装 nvm,并用它来管理 Node.js。


一、准备工作

1. 卸载已有的 Node.js(重要!)

nvm 要求系统中不能预先安装 Node.js,否则会冲突。

卸载步骤:

  1. 打开“控制面板” → “程序和功能”
  2. 找到 Node.js,右键选择“卸载”
  3. 删除残留目录(如果存在):
    • C:\Program Files\nodejs
    • C:\Users\<你的用户名>\AppData\Local\npm
  4. 清理环境变量:
    • Win + R 输入 sysdm.cpl → “高级” → “环境变量”
    • 在“系统变量”和“用户变量”中,找到 Path
    • 删除所有包含 nodejsnpm 的路径条目
✅ 完成后重启命令提示符,输入 node -v 应提示“不是内部或外部命令”。

二、下载并安装 nvm-windows

1. 访问官方 GitHub 仓库

打开浏览器,进入:
🔗 https://github.com/coreybutler/nvm-windows/releases

2. 下载安装包

  • 找到最新版本(如 nvm-setup.zip
  • 点击下载 nvm-setup.exe(这是图形化安装程序,推荐新手使用)
⚠️ 不要下载 nvm-noinstall.zip,除非你熟悉手动配置。

3. 安装 nvm

  1. 出现安全警告时点“是”
  2. 安装向导启动:
    • 点击 Next
    • 接受许可协议 → Next
    • 点击 InstallFinish

设置 Node.js 的符号链接路径(建议设为:C:\Program Files\nodejs

💡 这个路径将作为 node 命令的入口,必须不含空格和中文

设置 nvm 安装路径(建议默认:C:\Users\admin\AppData\Local\nvm

解压(如果下载的是 zip)或直接运行 nvm-setup.exe

✅ 安装完成后,nvm 会自动配置好环境变量。


三、验证 nvm 是否安装成功

  1. 输入以下命令:

管理员身份打开 命令提示符(CMD)PowerShell

(部分操作需要管理员权限)
nvm version 

如果显示版本号(如 1.1.12),说明 nvm 安装成功!

🔍 如果提示 'nvm' 不是内部或外部命令,请检查:是否完全卸载了旧版 Node.js是否重启了终端(或重启电脑)环境变量是否包含 nvm 路径(通常安装程序会自动添加)

四、使用 nvm 安装 Node.js

1. 查看可安装的 Node.js 版本

nvm list available 

这会列出所有官方支持的 LTS 和 Current 版本。

2. 安装指定版本(推荐 LTS)

例如安装最新的 LTS 版本(如 20.12.0):

nvm install 20.12.0 

显示如下如图则安装完成

也可以只指定主版本号,nvm 会自动安装该系列的最新版:

 nvm install 18 

3. 查看已安装的版本

nvm list 

输出示例:


五、切换 Node.js 版本

使用 nvm use 命令激活某个版本:

nvm use 20.12.0 

成功后会提示:

验证当前版本:

node -v # 输出 v20.12.0 npm -v # 显示对应 npm 版本 

✅ 切换后,nodenpm 命令会自动指向所选版本。

六、常用 nvm 命令速查

 1、基础信息类命令

命令作用示例
nvm versionnvm -v查看 nvm 自身版本nvm version1.1.12
nvm help显示所有可用命令帮助nvm help
nvm root显示 nvm 的安装根目录(即 Node.js 版本存放路径)nvm rootC:\Users\Alice\AppData\Roaming\nvm

 2、安装与卸载 Node.js

安装命令
命令说明示例
nvm install <version>安装指定精确版本nvm install 20.12.0
nvm install <major>安装该主版本的最新版(自动补全)nvm install 18 → 安装 18.x 最新版
nvm install lts安装最新的 LTS(长期支持)版本nvm install lts
nvm install latest安装最新的 Current(开发版)版本nvm install latest
✅ 安装时会自动下载并解压到 nvm root 目录下的对应版本文件夹。
卸载命令
命令说明示例
nvm uninstall <version>卸载指定版本(不能卸载当前正在使用的版本)nvm uninstall 16.14.0
nvm uninstall <major>卸载该主版本的所有子版本(不推荐)❌ 通常不支持,需指定完整版本号
⚠️ 注意:必须先 nvm use 切换到其他版本,才能卸载当前版本。

3、版本查看与切换

命令说明示例
nvm listnvm ls列出本地已安装的所有 Node.js 版本显示:
* 20.12.0 (当前)
18.17.0
nvm list availablenvm ls available列出所有官方可安装的版本(含 LTS/Current 标记)显示远程版本列表
nvm use <version>临时切换到指定版本(仅当前终端会话有效)nvm use 18.17.0
nvm use <major>切换到该主版本的已安装最新子版本nvm use 18
nvm current显示当前正在使用的 Node.js 版本nvm currentv20.12.0
✅ 切换成功后,node -vnpm -v 会立即反映新版本。

4、设置默认版本(持久生效)

命令说明示例
nvm alias default <version>设置默认启动版本(新终端自动激活)nvm alias default 20.12.0
nvm alias查看所有别名(包括 default)输出:
default -> 20.12.0
nvm unalias default删除默认别名(不推荐)
💡 设置默认版本后,每次打开新的 CMD/PowerShell,都会自动使用该版本,无需手动 nvm use

5、配置镜像源(加速下载)

nvm 默认从官方 nodejs.org 下载,国内用户可能很慢。可通过修改配置文件启用国内镜像。

步骤:

  1. 找到 nvm 安装目录
  2. 编辑 settings.txt 文件(若不存在则新建)
  3. 添加以下两行:
node_mirror: https://npmmirror.com/mirrors/node/ npm_mirror: https://npmmirror.com/mirrors/npm/ 
✅ 保存后,后续 nvm install 将自动从淘宝 NPM 镜像(npmmirror.com)下载,速度大幅提升!

6、清理与维护

命令说明
手动删除旧版本进入 nvm root 目录,直接删除不需要的版本文件夹(如 v16.14.0
清理 npm 缓存(可选)npm cache clean --force(每个 Node 版本有独立缓存)
重置 PATH(故障排查)如果 node 命令失效,检查 C:\Program Files\nodejs 是否在系统 PATH 中,并确保它是 nvm 创建的符号链接

7、高级技巧 & 实用组合

1. 快速安装并使用 LTS 版本
nvm install lts nvm use lts nvm alias default lts 
2. 同时安装多个常用版本
nvm install 18 nvm install 20 nvm install 22 
3. 查看某个项目所需的 Node 版本(配合 .nvmrc

如果项目根目录有 .nvmrc 文件(内容如 18.17.0),可快速切换:

nvm use 
⚠️ 注意:nvm-windows 不原生支持 .nvmrc 自动读取,但你可以手动执行:
nvm use $(cat .nvmrc) 

(在 PowerShell 中需用 Get-Content .nvmrc

4. 检查是否为 64 位版本

nvm-windows 默认安装 64 位。可通过以下命令确认:

node -p "process.arch" 

输出应为 x64


七、常见问题解决

❌ 问题1:nvm use 报错 “exit status 1: Access is denied.”

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

解决方法

  • 管理员身份运行 CMD 或 PowerShell
  • 或在安装 nvm 时,确保目标路径(如 C:\Program Files\nodejs)有写入权限

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

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

解决方法

  • 确保使用 nvm use 正确切换
  • 不要手动修改 PATH 中的 npm 路径

❌ 问题3:下载速度慢或失败

解决方法:配置国内镜像(需手动修改 nvm 设置文件)

  1. 打开 nvm 安装目录(C:\Users\admin\AppData\Local\nvm)
  2. 保存后重新安装即可加速

编辑 settings.txt,添加:

node_mirror: https://npmmirror.com/mirrors/node/ npm_mirror: https://npmmirror.com/mirrors/npm/ 

八、总结

通过 nvm-windows,你可以在 Windows 上:

  • 轻松安装多个 Node.js 版本
  • 一键切换项目所需的运行环境
  • 避免版本冲突和重复安装的烦恼

这对于前端开发者、全栈工程师或参与多个项目的团队成员来说,是必备的开发利器

🎯 最佳实践建议:日常开发使用 LTS 版本(如 18、20、22)用 nvm alias default 设置主力版本定期清理不用的旧版本:nvm uninstall 16.14.0

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

如有疑问,欢迎留言交流。祝你开发顺利!💻✨


附:nvm-windows 官方 GitHub:https://github.com/coreybutler/nvm-windowsNode.js 官网:https://nodejs.org国内镜像站(npmmirror):https://npmmirror.com

Read more

Flutter for OpenHarmony:flutter_simple_dependency_injection — 解耦应用架构的神器

Flutter for OpenHarmony:flutter_simple_dependency_injection — 解耦应用架构的神器

欢迎加入开源鸿蒙跨平台社区:https://openharmonycrossplatform.ZEEKLOG.net。 前言 随着鸿蒙工程复杂度的提升,由于“硬编码”依赖导致的架构臃肿会显著增加后期维护成本。flutter_simple_dependency_injection 提供了一种轻量级的 DI 方案,通过中立的“注入器”管理组件生命周期,实现各层级代码的深度解耦。 一、核心价值 1.1 基础概念 依赖注入的核心思想是:“不要自己去找桶,而是让别人把水送过来”。 实例化并持有 实例化并持有 请求实例 自动注入依赖 Injector 容器 ApiService AuthRepository 鸿蒙 UI 页面 1.2 进阶概念 * Singleton (单例):整个应用生命周期内只有一个实例,非常适合鸿蒙的数据库连接或全局配置。 * Factory (工厂):每次获取时都创建一个新对象,

By Ne0inhk
MySQL查看命令速查表

MySQL查看命令速查表

🎬 个人主页:艾莉丝努力练剑 ❄专栏传送门:《C语言》《数据结构与算法》《C/C++干货分享&学习过程记录》 《Linux操作系统编程详解》《笔试/面试常见算法:从基础到进阶》《Python干货分享》 ⭐️为天地立心,为生民立命,为往圣继绝学,为万世开太平 🎬 艾莉丝的简介: 文章目录 * 1 ~> MySQL 查看类命令大全 * 1.1 查看数据库 * 1.2 查看表 * 1.3 查看数 * 1.4 查看用户 / 权限 * 1.5 最常用组合(截图里就是这套) * 2 ~> MySQL常用核心命令速查表 * 2.1 MySQL 常用核心命令速查表 * 2.

By Ne0inhk
Rust异步编程高级模式:并发控制、超时机制与实战架构

Rust异步编程高级模式:并发控制、超时机制与实战架构

Rust异步编程高级模式:并发控制、超时机制与实战架构 一、异步并发控制:Semaphore、Mutex、RwLock的异步版本 1.1 为什么需要异步同步原语? 💡在同步编程中,我们使用std::sync::Mutex、std::sync::RwLock、std::sync::Semaphore等同步原语来控制并发访问。这些原语在多线程场景下非常有效,但在异步编程中,它们会导致任务阻塞,影响性能。 异步同步原语通过await关键字暂停任务,而不是阻塞线程,从而提高了CPU利用率。Tokio提供了一系列异步同步原语,如tokio::sync::Mutex、tokio::sync::RwLock、tokio::sync::Semaphore。 1.2 异步Mutex(互斥锁) 异步Mutex的使用方式与标准库的类似,但需要使用await来获取锁。 usetokio::sync::Mutex;usestd::sync::Arc;

By Ne0inhk
SkyWalking - Spring Cloud Alibaba 全链路追踪实战

SkyWalking - Spring Cloud Alibaba 全链路追踪实战

👋 大家好,欢迎来到我的技术博客! 📚 在这里,我会分享学习笔记、实战经验与技术思考,力求用简单的方式讲清楚复杂的问题。 🎯 本文将围绕SkyWalking这个话题展开,希望能为你带来一些启发或实用的参考。 🌱 无论你是刚入门的新手,还是正在进阶的开发者,希望你都能有所收获! 文章目录 * SkyWalking - Spring Cloud Alibaba 全链路追踪实战 🚀 * 1. 环境准备与核心概念 🧰 * 1.1 核心概念解析 * 1.2 环境准备 * 2. 构建 Spring Cloud Alibaba 微服务项目 🏗️ * 2.1 创建父工程 * 2.2 构建 `inventory-service`(库存服务) * 2.3 构建 `order-service`(订单服务) * 2.4 验证基础功能 * 3. 集成

By Ne0inhk