Windows环境使用NVM高效管理多个Node.js版本(NVM的完整安装流程、NVM相关配置、NVM的常用命令、使用NVM时可能遇到的问题、NVM管理多个Node.js版本的原理)

#新星杯·14天创作挑战营·第10期#

1. NVM简介

NVM的全称是 “Node Version Manager”。它是一个开源的版本管理工具,用于在命令行界面中管理多个Node.js版本

NVM允许用户轻松切换不同版本的Node.js,这对于需要在不同项目之间使用不同Node.js版本的开发者来说非常有用

2. 卸载原有的Node.js

使用NVM之前需要先卸载电脑上原有的Node.js,推荐使用Geek Uninstaller卸载

https://geekuninstaller.com/download

在这里插入图片描述

卸载原有的Node.js后,按下Win + R快捷键,输入cmd打开终端,在终端中输入node -v指令

在这里插入图片描述

node -v

当出现'node' 不是内部或外部命令,也不是可运行的程序或批处理文件。时,说明原有的Node.js卸载成功了

在这里插入图片描述

3. NVM的完整安装流程

3.1 下载NVM

NVM的最新版本是1.2.2(截至2025年4月11日)

下载地址:https://github.com/coreybutler/nvm-windows/releases/tag/1.2.2

https://github.com/coreybutler/nvm-windows/releases/tag/1.2.2

我们通过GitHub下载NVM的,如果无法正常访问GitHub,可以参考我的另一篇博文:GitHub的使用技巧(加速访问GitHub、查看GitHub的热门项目、查看GitHub推荐的项目、Fork、Issue、快速找到项目的安装包、GitHub的各种快捷键)

在这里插入图片描述

3.2 安装NVM

双击nvm-setup.exe文件安装NVM


点击I accept the agreement后点击Next

在这里插入图片描述

选择NVM的安装路径(这个安装路径后面会用到),选择完成后点击Next

在这里插入图片描述

暂时不选择symlink的存放路径(后面会重新设置),直接点击Next

在这里插入图片描述

点击Next

在这里插入图片描述

无需填写电子邮箱,点击Next

在这里插入图片描述

点击Install

在这里插入图片描述

安装完成的界面

在这里插入图片描述

3.3 验证NVM是否成功安装

按下Win + R快捷键,输入cmd打开终端,在终端中输入nvm -v指令

在这里插入图片描述

nvm -v

当终端中显示出NVM的具体版本号时,就说明NVM安装成功了

在这里插入图片描述

4. NVM相关配置

4.1 创建用于存放多个Node.js的目录

我们在NVM的安装目录下新建一个名为nodejs的目录,用于存放各个版本的Node.js

在这里插入图片描述

4.2 设置环境变量(用户变量和系统变量都要设置)

按下Win + i快捷键打开设置界面,搜索环境变量关键字,点击编辑系统环境变量

在这里插入图片描述

点击环境变量

在这里插入图片描述

由于NVM在安装的时候同时设置了用户变量和环境变量,所以我们需要分别修改用户变量和环境变量中名为NVM_SYMLINK的变量

4.2.1 用户变量

在用户变量中找到NVM_SYMLINK变量,双击打开

在这里插入图片描述

接着点击浏览目录

在这里插入图片描述

选择我们刚才创建的用于存放多个Node.js的目录,最后点击确定,每一个窗口都要点击确定

在这里插入图片描述

4.2.2 系统变量

在系统变量中找到NVM_SYMLINK变量,双击打开

在这里插入图片描述

接着点击浏览目录

在这里插入图片描述

选择我们刚才创建的用于存放多个Node.js的目录,最后点击确定,每一个窗口都要点击确定

在这里插入图片描述

4.3 验证环境变量是否设置成功

按下Win + R快捷键,输入cmd打开终端,在终端中输入echo %NVM_HOME% & echo %NVM_SYMLINK%指令

在这里插入图片描述

echo %NVM_HOME% & echo %NVM_SYMLINK%

当终端中显示出两个环境变量的值时,就说明环境变量设置成功了

在这里插入图片描述

4.4 设置Node镜像和npm镜像

我们在NVM的安装目录下找到settings.txt,打开文件后将path的值更改为我们刚才创建的用于存放多个Node.js的目录

在这里插入图片描述

最后在文件末尾添加以下内容,保存文件

node_mirror: http://npmmirror.com/mirrors/node/
npm_mirror: http://registry.npmmirror.com/mirrors/npm/

4.5 删除用于存放多个Node.js的目录

删除我们刚才创建的用于存放多个Node.js的目录,也可以选择文件夹后按下CTRL+D快捷键删除

在这里插入图片描述

为什么我们创建用于存放多个Node.js的目录后又要删除呢,主要是因为我们创建的目录是一个真实目录,而NVM需要的是一个虚拟目录(可以理解为Windows系统中的快捷方式或Linux系统中的软连接),具体可以参考本文的NVM管理多个Node.js版本的原理章节

将真实目录删除之后,NVM会为我们自动创建一个快捷方式

4.6 开启使用NVM管理Node.js版本选项

输入以下指令,开启使用NVM管理Node.js版本选项

nvm on

在这里插入图片描述

5. NVM的常用命令

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

nvm list available

在这里插入图片描述


nvm list available列出的大多都是较新版本的Node.js,如果想下载旧版本的Node.js,可以访问https://nodejs.org/zh-cn/about/previous-releases(网站仅列出了每一个旧版本的最后一个稳定版)

在这里插入图片描述

5.2 安装指定版本的Node.js

nvm install <version>

例如,安装22.14.0版本的Node.js

nvm install 22.14.0

在这里插入图片描述

5.3 使用某个Node.js版本

nvm use <version>

例如,使用22.14.0版本的Node.js

nvm use 22.14.0

在这里插入图片描述

使用某个Node.js版本后,可以输入以下指令检查是否设置成功

node -v
npm -v

在这里插入图片描述

5.4 显示当前正在使用的Node.js版本

在这里插入图片描述

5.5 列出已安装的所有Node.js 版本

nvm list

在这里插入图片描述

5.6 卸载指定版本的Node.js

nvm uninstall <version>

例如,卸载22.14.0版本的Node.js

nvm uninstall 22.14.0

6. 使用NVM时可能遇到的问题

6.1 The process cannot access the file because it is being used by another process.

6.1.1 问题呈现

在使用nvm下载低版本的Node.js(14.21.3)时控制台抛出以下错误


Downloading node.js version 14.21.3 (64-bit)…
Complete
Downloading npm…
Creating C:\Users\冰封神奇\AppData\Local\Temp\nvm-install-1038795423\temp

Downloading npm version 6.14.18… Download failed. Rolling Back.
C:\Users\冰封神奇\AppData\Local\Temp\nvm-install-1038795423\temp\npm-v6.14.18.zip
Rollback failed. remove C:\Users\冰封神奇\AppData\Local\Temp\nvm-install-1038795423\temp\npm-v6.14.18.zip: The process cannot access the file because it is being used by another process.
error installing 14.21.3: Could not download npm for node v14.21.3.
Please visit http://registry.npmmirror.com/mirrors/npm/14.21.3 to download npm.
It should be extracted to F:\nvm\nvm\v14.21.3

在这里插入图片描述

6.1.2 问题产生的原因

从控制台中给出的报错信息中可以看出,Node下载成功了(在文件资源管理器中可以看到对应版本的Node.js),但是npm没有下载成功

具体的原因是npm压缩包的保存路径和nvm提取压缩包的路径不一致

在这里插入图片描述

6.1.3 解决方法

参考我的另一篇博文:NVM下载低版本的Node.js时报错The process cannot access the file because it is being used by another process.

6.2 activation error: NVM_SYMLINK is set to a physical file/directory at F:\nvm\nodejs

6.2.1 问题呈现

C:>nvm on
nvm enabled
activation error: NVM_SYMLINK is set to a physical file/directory at F:\nvm\nodejs
Please remove the location and try again, or select a different location for NVM_SYMLINK.

在这里插入图片描述

6.2.2 问题产生的原因

我们创建的用于存放各个Node.js版本的目录是一个真实目录,而NVM需要的是一个虚拟目录(可以理解为Windows系统中的快捷方式或Linux系统中的软连接),具体可以参考本文的NVM管理多个Node.js版本的原理章节

6.2.3 解决方法

参考本文的删除用于存放多个Node.js的目录章节

7. NVM管理多个Node.js版本的原理

其实NVM管理多个Node.js版本的原理并不复杂,在安装NVM时,NVM让我们选定了两个目录,一个是NVM的安装目录,对应setting.txt文件中的root属性,也对应着系统环境变量中的NVM_HOME属性,所有版本的Node.js都会安装在这个目录下

另一个目录是软链接(相当于Windows系统中的快捷方式和Linux系统中的软连接)的位置,对应setting.txt文件中的path属性,也对应着系统环境变量中的NVM_SYMLINK属性,该软链接指向的就是具体版本的Node.js


我们在文件资源管理器中可以验证这一点(nodejs目录前面的文件夹图标的左下角有一个快捷方式的图标)

在这里插入图片描述

右键快捷方式,查看快捷方式的属性,就可以看到快捷方式具体指向了哪个目录

在这里插入图片描述


我们在cmd窗口中输入nvm use <version>指令时,本质上就是在调整快捷方式的指向

在这里插入图片描述

知道NVM管理多个Node.js版本的原理之后,你是不是觉得十分简单,甚至感觉自己也能做一个类似的软件出来

如果你有这个想法,恭喜你,你的思维已经比一般的程序员高不少了,其实很多时候想法才是最重要的,技术只是一个载体,或者说是一个工具

关键之处在于将想法变成现实的执行力,就像NVM的作者一样,相信他也是在开发项目的时候,发现切换多个版本的Node.js版本时很麻烦,所以开发出了nvm软件,并受到了广大开发者的青睐

所以说,如果你也有类似的想法,大可以自己花时间做一个产品出来,再适当推广,或许你也能成为下一个大牛

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

聂 可 以

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值