前言
对于某个项目依赖特定版本的 NodeJS,或几个项目的 NodeJS 版本冲突时,需要在系统中安装多个版本的 NodeJS,这时可以使用一些工具来进行多个 NodeJS 的管理。
有很多类似的 NodeJS 管理工具,如 nvm, nvs, n 等,接下来我们来讲讲如何使用。
NVM
NVM(Node Version Manager)是一个 NodeJS 的多版本管理工具,使用 Shell 编写,开源软件,支持 Linux 和 Mac 系统。
官方仓库地址
下载
直接在 Github 的官方仓库 中下载,或者使用下载脚本安装。
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.0/install.sh | bash
# 或者
wget -qO- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.0/install.sh | bash
脚本会下载并复制 nvm 到 ~/.nvm
目录下,并添加相关的环境变量。如果在命令行中找不到 nvm 命令,可以让终端重新载入配置。
例如:
bash: source ~/.bashrc
zsh: source ~/.zshrc
ksh: . ~/.profile
使用
下载 NodeJS,可指定特定的版本,或使用 node 下载最新的版本。
nvm install node # node 即最新版本
nvm install 14.7.0 # 指定特定版本
nvm install --lts # 下载最新的长期支持版本
设置别名。
nvm alias my_alias v14.4.0
查看可供下载的版本。
nvm ls-remote
指定使用的版本。
nvm use node
nvm use --lts
运行指定的版本。
nvm run node --version
在指定版本的命令行中运行。
nvm exec 4.2 node --version
设置默认使用的版本。
nvm alias default 18
卸载指定的版本。
nvm uninstall <version>
配置文件
支持使用 .nvmrc
配置文件来指定版本,配置文件中仅包含版本号。nvm use, nvm install, nvm exec, nvm run 和 nvm which 命令不带版本参数的情况下就会使用配置文件中指定的版本。
NVM-windows
NVM-windows 是 nvm 多版本管理工具的 Windows 版本,使用 Go 编写,开源软件,支持 Windows 系统。
官方仓库地址
下载
直接在 Github 的官方仓库 中下载,它有一个可视化的安装界面,安装非常简单。
使用
打开命令行进行使用。
查看 NodeJS 版本。
# 查看已经安装的版本
nvm list
# 查看网络可以下载的版本
nvm list available
# 查看当前使用的版本
nvm current
安装指定版本的 NodeJS。
nvm install <version> [arch]
使用 指定特定的版本,使用 latest 下载最新的稳定版本,使用 lts 下载最近的长期支持版本。可选的 [arch] 指定 32 或 64 位,默认使用系统架构。
切换 NodeJS 版本,版本支持 latest、lts 或 newest,newest 是最新安装的版本。可选的 [arch] 指定 32 或 64 位。
nvm use <version> [arch]
删除指定的版本。
nvm uninstall <version>
其他管理。
# 打开 NodeJS 控制
nvm on
# 关闭 NodeJS 控制
nvm off
# 设置下载的代理地址,使用 none 则删除代理
nvm proxy [url]
# 设置镜像地址,对于国内加速非常方便
nvm node_mirror <node_mirror_url> # 国内可使用 https://npmmirror.com/mirrors/node/
nvm npm_mirror <npm_mirror_url> # 国内可使用 https://npmmirror.com/mirrors/npm/
NVS
NVS(Node Version Switcher)是一个跨平台的 NodeJS 管理工具,它使用 Javascript 编写,支持 Windows、Mac 和 Linux。
官方仓库地址
安装
可以从官方仓库中下载安装包,对于 Windows 提供了 MSI 安装包,对于 Mac / Linux 也提供了脚本安装。
export NVS_HOME="$HOME/.nvs"
git clone https://github.com/jasongin/nvs "$NVS_HOME"
. "$NVS_HOME/nvs.sh" install
使用
安装特定的版本。
# 安装最新版本
nvs add latest
# 安装最新的长期支持版本
nvs add lts
切换版本。
nvs use lts
nvs 默认使用软链接的方式添加命令,也可以默认添加。
nvs link lts
运行特定的版本。
nvs run <ver> <js> [args...]
nvs exec <ver> <exe> [args...]
创建别名。
nvs alias [name] [value]
删除特定的版本。
nvs rm <version>
nvs 支持交互的方式,直接输入 nvs 可以交互式选择版本。
N
一款非常简单,没有子 shell,没有配置文件,没有复杂 API 的 NodeJS 管理工具。它是一个开源软件,使用 shell 编写,支持 Linux 和 Mac。
官方仓库地址
安装
可以直接使用 npm 安装。
npm install -g n
或者使用其他工具安装。
# Mac 使用 brew
brew install n
# Mac 使用 MacPorts
port install n
# 下载脚本安装
curl -L https://bit.ly/n-install | bash
使用
下载特定的 NodeJS 版本,支持 lts,latest 等特定名称。
n 10.16.0
n lts
也支持交互方式,直接输入 n 可以弹出选择列表。
$ n
node/4.9.1
ο node/8.11.3
node/10.15.0
Use up/down arrow keys to select a version, return key to install, d to delete, q to quit
使用特定的版本执行。
n run 8.11.3 --debug some.js
n exec 10 my-script --fast test
n exec lts zsh
查看已下载的版本。
n ls
删除特定的版本。
n rm 0.9.4 v0.10.0