引言
相信进入这里的大家都会遇到下面这种类似的问题,没错!这就是折磨人的Node.js版本需要升级或降级的问题!!!

以下是一些常见的需要升降级版本的场景
需要降低Node.js
版本的场景:
- 项目依赖:某些项目或库可能对较旧的Node.js版本有要求,需要降低Node.js版本以满足项目依赖的要求。
- 兼容性问题:在某些情况下,项目可能因为使用了较新的Node.js版本而导致与其他组件或库不兼容,此时需要降低
Node.js
版本以解决兼容性问题。 - 项目需要在特定的旧版本
Node.js
上进行测试或部署。
需要升级Node.js
版本的场景:
- 性能优化:新版的
Node.js
可能会引入一些性能优化或新特性,升级到较新的Node.js
版本可以提升项目的性能和效率。 - 安全漏洞修复:
Node.js
社区会定期发布安全补丁和更新,用于修复已知的安全漏洞。为了确保项目的安全性,需要及时升级到修复了安全漏洞的Node.js
版本。 - 新功能需求:某些特定的开发需求可能需要使用最新的
Node.js
版本,以获得最新的语言特性、工具和库支持。
需要注意的是,在降低或升级Node.js
版本之前,应仔细评估和测试,确保新版本不会引入新的问题或导致现有功能的破坏。同时,还应考虑项目的其他依赖项和环境,以确保整体的兼容性和稳定性。
nvm、gnvm的出现
对于以上问题,因为Node.js
默认一台电脑只能装一个版本,所以当我们为了开发项目经常会使用不同版本的Node.js
版本,这种情况版本来回切换就超级无敌宇宙麻烦!!!这时 nvm
和 gvm
就由此出现。
nvm
什么是nvm
nvm
是一款管理 Node.js
多版本的工具,可以让你的电脑同时存在多个版本的Node.js
,同时也可以方便快捷的安装、切换不同版本。
下载安装nvm
点击安装nvm
跟着官网给出的步骤进行安装即可,需要注意的是第一个为nvm
的安装路径,第二个为Node.js
安装的路径。
当不存在Node.js
环境下,第二个路径选择可以是任意文件夹。
存在Node.js
环境下,第二个路径选择需要和该版本的路径保持一致,后续需要同意选择控制该 Node.js
版本:
安装成功后 查看是否安装成功
最后就可以自由切换版本
nvm常用命令
命令 | 用途 | 其他 |
---|---|---|
nvm version | 查看nvm安装的版本 | |
nvm install latest | 安装最新版本的node | 最新版本不太稳定,不太建议安装最新版本 |
nvm install <version> | 安装指定版本的node | |
nvm uninstall <version> | 卸载指定版本node | |
nvm use <version> | 切换版本 | |
nvm list | 显示已安装列表 | 在现使用的node.js版本号前会有个*号 |
nvm current | 查看当前使用node版本号 |
nvm基本原理
nvm
的基本原理是通过软链接来实现切换Node.js
版本上。
每一个已安装的 node
版本的安装文件都在nvm的根目录下,而当前系统环境中正在使用的版本,则会通过软链接的形式连接到 Node.js
的安装目录。
如下图所示,nvm的根目录下有着不同的node 版本
:
而在原本的 Node.js
安装目录下,可看到文件夹已经显示连接的图标:
卸载nvm
- 找到
nvm
文件夹,删除 - 搜索中,搜索高级系统设置---环境变量
- 删除用户变量和系统变量中名为
NVM_HOME
和NVM_SYMLINK
两个变量,其他的不要改 - 用户变量和系统变量中的
path
中的%NVM_HOME%;%NVM_SYMLINK%
两个属性,其他的不要变 - 卸载完成后,在
cmd
命令行中
gnvm
什么是gnvm
gnvm官网
gnvm是使用Go语言编写的Node.js多版本管理器,其为单文件,不依赖于任何环境,下载即用,无需配置。
下载安装gnvm
点击下载安装gnvm

安装完成后,就只有一个文件,别质疑!它就是一个文件!
当不存在Node.js环境下,直接将gnvm.exe
文件拉到任意文件夹,并将此文件夹加入到环境变量 Path
存在Node.js
环境下,将gnvm.exe
拉到 Node.js
所在的文件夹
验证是否安装成功:
初始化命令:gnvm config INIT
gnvm
将会完成一些初始化设置,包括下载默认的Node.js
版本、设置默认版本等。在初始化完成后,就可以开始使用 gnvm
来管理 Node.js
版本了。
注意:
gnvm
是一个自包含的 Node.js
版本管理工具,它会将自己的路径添加到系统的 PATH
中,这样你就可以在任何位置直接使用gnvm
命令,无需手动配置环境变量。
gnvm常用命令
命令 | 作用 |
---|---|
gnvm version | 查看 gnvm 的版本信息 |
gnvm install <version> | 安装指定版本的Node.js |
gnvm uninstall <version> | 卸载指定版本的Node.js |
gnvm use <version> | 切换当前使用的Node.js版本 |
gnvm ls | 列出已经安装的所有Node.js版本 |
gnvm node-version | 查看当前正在使用的Node.js版本 |
gnvm search [ . .*] | 根据版本规则查看线上有效的Node.js版本 |
gnvm npm <version> | 下载和安装任意版本的npm |
注意:
切换版本可以使用use
命令,也可以直接将版本里面的node.exe
拉到根目录下,直接覆盖根目录的node.exe
gnvm基本原理
gnvm
的基本原理是通过切换环境变量来实现切换 Node.js
版本。
当用户使用 gnvm use <version>
命令切换 Node.js
版本时,gnvm
会检查本地是否已经安装了对应版本的 Node.js
。如果存在该版本,gnvm
会将该版本的安装路径添加到 Path
环境变量中,从而使得命令行终端可以找到该版本的 Node.js
。
注意
虽然gnvm
下载使用比较方便,但事实上已经停止维护了,有多年不再更新。
所以,如果需要要对 Node.js
进行多版本的管理,建议还是使用nvm
。