NVM node 多版本管理

介绍
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

脚本中使用 nvm 提示找不到

#!/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 install、nvm usenvm runnvm execnvm which 等:

  • node:这将安装最新版本的 Node.js
  • iojs:这将安装最新版本的 io.js
  • stable:此别名已弃用,仅适用于 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

你可能感兴趣的:(node.js)