编程语言发展至今,基本每个成熟的高级语言都有对应的版本管理工具,如Java有 sdkman、python有 anaconda、go有 gvm等。本篇要讲的是NodeJS的版本管理工具:NVM
在 NodeJS 的开发过程中,我们常常会遇到这样的情况:不同的项目可能依赖于不同版本的 NodeJS。例如,一个旧项目使用的是较为稳定的 NodeJS 16 版本,而新的项目则希望使用最新的具有更多新特性的 NodeJS 22 版本。在这种情况下,频繁地手动安装和切换 NodeJS 版本会变得非常繁琐,而 NodeJS Version Manager(NVM)的出现则很好地解决了这一难题。
什么是 NVM
NVM 是一个开源的、用于管理 NodeJS 版本的工具。它允许开发者在同一台机器上安装和管理多个不同版本的 NodeJS,并能够轻松地在这些版本之间进行切换。这意味着开发者无需担心不同项目对 NodeJS 版本的不同需求,能够更加高效地进行开发工作。
安装 NVM
NVM 的安装过程相对简单,并且它支持多种操作系统,包括 Linux、macOS 和 Windows。
在线安装
在 Linux 和 macOS 上安装
打开终端,运行以下命令:
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.2/install.sh | bash
或
wget -qO- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.2/install.sh | bash
这个命令会从官方仓库下载安装脚本并执行,所以你可能需要科学上网的手段,毕竟github的访问实在太不稳定,实在没有就使用下面的离线安装方式。安装完成后,需要关闭并重新打开终端,或者运行以下命令使 NVM 生效:
source ~/.bashrc
离线安装
在 Linux 和 macOS 上安装
从 github 上下载压缩包到本地,github访问不了就下载我分享的百度网盘文件,将压缩包上传到目标环境后解压,接着执行 install.sh,最后激活环境即可。
从安装过程可以看来出,其实执行install.sh时一样会让git去下载资源,查看install.sh脚本内容发现还是去github下载,所以严格上并不能算是真正的离线安装,只能说下载安装脚本这一步算是离线的 ~__~
在 Windows 上安装
nvm在linux跟windows上是属于不同项目,不是出自同一个人或组织,所以版本号也是不一致的。项目地址是 https://github.com/coreybutler/nvm-windows,下载地址,我分享的百度网盘文件,下载下来是个exe文件,直接点击安装即可,安装时注意选择要安装的路径。github下载时有 nvm-noinstall.zip 文件,这种就是直接压缩包解压的方式安装,麻烦的是需要手动配置nvm对应环境变量。
使用 NVM
查看可安装的NodeJS版本
nvm list available 或 nvm ls-remote
安装 NodeJS 版本
安装完成 NVM 后,就可以使用它来安装不同版本的 NodeJS 了。例如,要安装最新的稳定版本,可以运行:
nvm install --lts
如果想要安装特定版本,比如 NodeJS 14.17.0,则运行:
nvm install 14.17.0
切换 NodeJS 版本
安装了多个版本后,切换版本非常容易。例如,要切换到刚刚安装的 14.17.0 版本,运行:
nvm use 14.17.0
切换完成后对应的node与npm也会相应地切换,可以使用 node -v
或 npm -v
查看
也可以设置默认版本或起别名,这样每次打开新终端时都会自动使用指定版本或直接用别名代替版本号:
nvm alias default 14.17.0
查看已安装的版本
使用以下命令可以查看当前系统中已安装的所有 NodeJS 版本:
nvm list
该命令会列出所有已安装的版本,并标记当前正在使用的版本。
卸载已安装的版本
使用以下命令可以卸载当前系统中已安装的对应 NodeJS 版本:
nvm uninstall 14.17.0
更多命令可使用 nvm --help
查看
配置镜像源
linux 配置方式采用环境变量的方式,在 ~/.bashrc加入以下内容,然后 source ~/.bashrc
# 淘宝镜像源
export NVM_NODEJS_ORG_MIRROR="https://npmmirror.com/mirrors/node/"
windows 配置方式采用的是配置文件与命令行的方式,在安装nvm目录下有个settings.txt(安装目录可以通过 nvm root
命令查看),在文件最后追加以下内容即可:
node_mirror: https://npmmirror.com/mirrors/node/
npm_mirror: https://npmmirror.com/mirrors/npm/
最终内容如下:
也可以直接通过命令行设置:
nvm node_mirror https://npmmirror.com/mirrors/node/
nvm npm_mirror https://npmmirror.com/mirrors/npm/