介绍
nvm 允许您通过命令行快速安装和使用不同版本的 Node
例子:
# 切换到 16 版本
$ nvm use 16
Now using node v16.9.1 (npm v7.21.1)
# 查看当前 node 版本
$ node -v
v16.9.1
# 切换到 14 版本
$ nvm use 14
Now using node v14.18.0 (npm v6.14.15)
$ node -v
v14.18.0
# 安装 12 版本
$ nvm install 12
Now using node v12.22.6 (npm v6.14.5)
$ node -v
v12.22.6
$ curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.3/install.sh | bash
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 15916 100 15916 0 0 48511 0 --:--:-- --:--:-- --:--:-- 48376
=> Downloading nvm from git to '/root/.nvm'
=> Cloning into '/root/.nvm'...
remote: Enumerating objects: 360, done.
remote: Counting objects: 100% (360/360), done.
remote: Compressing objects: 100% (306/306), done.
remote: Total 360 (delta 40), reused 169 (delta 28), pack-reused 0
Receiving objects: 100% (360/360), 219.95 KiB | 1001.00 KiB/s, done.
Resolving deltas: 100% (40/40), done.
* (HEAD detached at FETCH_HEAD)
master
=> Compressing and cleaning up git repository
=> Appending nvm source string to /root/.bashrc
=> Appending bash_completion source string to /root/.bashrc
=> Close and reopen your terminal to start using nvm or run the following to use it now:
export NVM_DIR="$HOME/.nvm"
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" # This loads nvm
[ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion" # This loads nvm bash_completion
面的输出做了这些事情:运行上述任一命令都会下载脚本并运行它。该脚本将 nvm 存储库克隆到 ~/.nvm
,并尝试将下面代码段中的源代码行添加到正确的配置文件(~/.bash_profile
、~/.zshrc
、~/.profile
或~/.bashrc
)。
安装完成之后,需要重新打开终端,则可以使用如下命令检查 nvm 版本
$ nvm -v
0.39.3
#!/bin/bash
nvm use 14
运行该脚本后,发现提示 nvm 找不到这个命令(但是不使用命令行是可以使用的)
GPT 的回答说可能是 shell 脚本运行时,没有正确加载 nvm 的环境变量,所以可以增加以下代码
#!/bin/bash
export NVM_DIR="$HOME/.nvm"
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh"
nvm use 14
要下载、编译和安装最新版本的 node,请执行以下操作:
nvm install node # "node" is an alias for the latest version
要安装特定版本的 node:
nvm install 14.7.0 # or 16.3.0, 12.22.1, etc
安装的第一个版本成为默认版本。新的 shell 将以默认版本的 node(例如,nvm alias default
)开始。
您可以使用以下方式列出可用版本:
nvm ls-remote
然后,在任何新的 shell 中只使用安装的版本:
nvm use node
或者您可以运行它:
nvm run node --version
或者,您可以在具有所需节点版本的子 shell 中运行任意命令:
nvm exec 4.2 node --version
您还可以获取可执行文件的安装路径:
nvm which 12.22
代替“14.7”或“16.3”或“12.22.1”之类的版本指针,您可以使用以下特殊的默认别名以及 nvm instal
l、nvm use
、nvm run
、nvm exec
、nvm which
等:
node
:这将安装最新版本的 Node.jsiojs
:这将安装最新版本的 io.jsstable
:此别名已弃用,仅适用于 Node.js v0.12 和更早版本。目前,这是 node
。unstable
:这个别名指向 Node.js v0.11- 最后一个“不稳定”节点版本,自 1.0 后,所有 Node.js 版本都是稳定的。(在 SemVer 中,版本传达的是破损,而不是稳定性)。可以看到,全局安装软件之后,它的路径是在指定版本的 node 目录下,所以,切换到不同的版本,拥有不同的软件
$ npm install --global yarn
> [email protected] preinstall /root/.nvm/versions/node/v14.21.3/lib/node_modules/yarn
> :; (node ./preinstall.js > /dev/null 2>&1 || true)
/root/.nvm/versions/node/v14.21.3/bin/yarn -> /root/.nvm/versions/node/v14.21.3/lib/node_modules/yarn/bin/yarn.js
/root/.nvm/versions/node/v14.21.3/bin/yarnpkg -> /root/.nvm/versions/node/v14.21.3/lib/node_modules/yarn/bin/yarn.js