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

Re:从零开始的 C++ 入門篇(五)类和对象·第二篇:构造函数与析构函数

Re:从零开始的 C++ 入門篇(五)类和对象·第二篇:构造函数与析构函数

◆ 博主名称: 晓此方-ZEEKLOG博客 大家好,欢迎来到晓此方的博客。 ⭐️C++系列个人专栏: 此方带你玩转C++_晓此方的博客-ZEEKLOG博客  ⭐️踏破千山志未空,拨开云雾见晴虹。 人生何必叹萧瑟,心在凌霄第一峰 0.1概述&前言         从本文会开始,此方会为大家带来类的默认成员函数的内容。该方面是C/C++类和对象篇章最难以理解的部分,构造函数和析构函数分别取代了C语言的Init函数和destory函数,大大提升了运行效率。默认成员函数的学习将为后续内容打下深厚的基础,本文讲解深入骨髓,细节无微不至,希望看完后能让你对这两者有深入的认识。 一,类的默认成员函数 定义:      默认成员函数就是用户没有显式实现,编译器会自动生成的成员函数称为默认成员函数。 一个类,我们不写的情况下编译器会默认生成以下6个默认成员函数:        需要注意的是这6个中最重要的是前4个。最后两个取地址重载不重要,我们稍微了解一下即可。其次就是C++11以后还会增加两个默认成员函数,移动构造和移动赋值,这个我们后面再讲解。默认成员函数很重要,也比较复杂

By Ne0inhk
C++:set/multiset和map/multimap文档详细解析

C++:set/multiset和map/multimap文档详细解析

Hello大家好! 很高兴与大家见面! 给生活添点快乐,开始今天的编程之路。 我的博客:<但愿. 我的专栏:C语言、题目精讲、算法与数据结构、C++ 欢迎点赞,关注 目录   前言   一 容器的分类(根据容器中各个数据之间的关系)          1.1序列式容器                  1.1.1序列式容器的概念                  1.1.2序列式容器的例子           1.2关联式容器                  1.2.1关联式容器的概念                  1.2.2关联式容器的例子   二  set/multiset           2.1参考文档(multiset包在set中所以其没有头文件)           2.2set类的介绍                   2.2.1set类的实现的简单介绍                  2.2.2set类的接口介绍                           2.

By Ne0inhk
C++/数据结构:哈希表知识点

C++/数据结构:哈希表知识点

目录 哈希表 理解哈希表 哈希值(整形) BKDR哈希   异或组合  hash_combine 哈希函数 直接定址法 除留余数法 平方取中法 基数转换法 哈希冲突 开放定址法 哈希桶 unordered_map和unorder_set如何共用一个哈希桶模板类 stl的哈希桶中Insert如何得到的键值 键为自定义类型的处理         前言:本篇文章前半部分内容为哈希表的原理, 从上到下按照理解链逐层递进。 最后三个小标题占了比较大的篇幅, 是结合c++代码来叙述, 主要内容为stl中的哈希桶如何封装的。 如果有错误的地方, 欢迎友友们指正哦。         ps:本篇文章一直到哈希桶,除了最后三个小标题,c++和java的同学都可以看, 讲的是数据结构, 即便有c++代码也很简单哦。 哈希表         首先要理解哈希和哈希表有什么不同。 哈希就是映射, 是一种算法思想。 哈希表就是映射表, 是利用映射这种思想写出的一种数据结构。          所有的哈希表的算法流程都是类似的——拿到一个key, 利用哈希函数进行hash

By Ne0inhk
C++之基于正倒排索引的Boost搜索引擎项目数据清洗代码及详解(上)

C++之基于正倒排索引的Boost搜索引擎项目数据清洗代码及详解(上)

1.为什么要进行数据清洗 这是因为我们获得的网页信息包含了很多我们不想要的部分(标签),同时我们需要把title还有content从网页里面提取出来,这样方便我们后期对其进行处理。 2. 怎么进行数据清洗 我们可以把这分为三步。 2.1 第一步 第一步就是通过Enumfile函数把src_path里面的文件名(带路径),保存到file_list中,方便后期对文件进行一个一个的读取。 PS:src_path里面存的就是没有被处理过的信息。 这一步的本质是把src_path里面的关于网页的部分先筛选出来,我们只需要以.html结尾的普通网页文件,其他的都不要。 2.2 第二步 把筛选后的文件去标签化,然后把其分为title和content并构建url,接着存入results里面。 PS:之所以要去标签是因为网页里面实际上包含了很多很多没有的部分,可能是文字的大小或者颜色之类的。我们要把这些全部都去除。 就是把这里打钩的全部提取出来。 2.3 第三步 把去标签后的信息全部给写入到output里面。 PS:我们看到这里可能会疑惑为什么不写到一起,为什么要一步就要换

By Ne0inhk