使用 NVM 设置节点版本,如果不可用则安装。
Set node version with NVM or install if not available.
我正在尝试向我的 bash 配置文件添加一些内容,将我的节点版本设置为特定版本,如果未安装该节点版本,请安装它。到目前为止我所拥有的是:
. /usr/local/opt/nvm/nvm.sh
if [[ $(nvm use v6.9.1) == "" ]]; then
nvm install v6.9.1
fi
但是,问题是 $(nvm use v6.9.1)
在子shell 中是 运行 而我的节点版本没有切换。
a) 有什么方法可以让$(nvm use v6.9.1)
运行 在现在的shell?
b) 有更好的方法吗?
以前我只是 运行ning nvm install v6.9.1
但这有点慢,这是一个问题,因为每次我打开一个新终端时它 运行s。
谢谢马特!
你试过 grepping nvm ls 吗?
. /usr/local/opt/nvm/nvm.sh
if [[ $(nvm ls | grep v6.9.1) == "" ]]; then
nvm install v6.9.1
else
nvm use v6.9.1
fi
对您来说,它比使用 nvm install v6.9.1
快吗?
编辑:您还可以设置默认始终加载的默认版本。你可以通过 运行 nvm alias default 6.9.1
.
您可以尝试将脚本更改为:
if [[ $(node -v) != "v6.9.5" ]]; then
nvm install v6.9.5
nvm alias default v6.9.5
fi
这会花一点时间,但只是第一次
这行得通。如果use
失败,则执行install
.
#!/bin/sh
nvm use 14.18.1 || nvm install 14.18.1
# or if you don't need the warning
nvm use 14.18.1 2>/dev/null || nvm install 14.18.1
我有一个 bash 别名,我为此使用了多个版本:
alias nvmuse='nvm use || nvm install $(cat .nvmrc)'
在当前版本的 nvm 中,nvm install
不会重新安装已安装的节点。
示例:
$ nvm install v16.0.4
v16.14.2 is already installed.
# The same if you have put the version in your project's .nvmrc
$ nvm install
v16.0.4 is already installed.
但是请注意,如果您指定了一个 不明确的 版本,例如 v16
并且 更新版本 v16 可用,然后 nvm 将下载并安装较新版本,忽略您的旧版本 v16。
$ node --version
v16.0.4
$ nvm install v16
Downloading and installing node v16.14.2...
因此,如果您始终希望成为 up-to-date 并拥有最新的安全补丁,那么指定 v16
是很好的选择。但最终你可能会安装很多版本的节点!
要只安装一个版本(以节省磁盘 space,或保留您之前使用 npm 全局安装的软件包)然后指定完整版本 v16.0.4
。
我正在尝试向我的 bash 配置文件添加一些内容,将我的节点版本设置为特定版本,如果未安装该节点版本,请安装它。到目前为止我所拥有的是:
. /usr/local/opt/nvm/nvm.sh
if [[ $(nvm use v6.9.1) == "" ]]; then
nvm install v6.9.1
fi
但是,问题是 $(nvm use v6.9.1)
在子shell 中是 运行 而我的节点版本没有切换。
a) 有什么方法可以让$(nvm use v6.9.1)
运行 在现在的shell?
b) 有更好的方法吗?
以前我只是 运行ning nvm install v6.9.1
但这有点慢,这是一个问题,因为每次我打开一个新终端时它 运行s。
谢谢马特!
你试过 grepping nvm ls 吗?
. /usr/local/opt/nvm/nvm.sh
if [[ $(nvm ls | grep v6.9.1) == "" ]]; then
nvm install v6.9.1
else
nvm use v6.9.1
fi
对您来说,它比使用 nvm install v6.9.1
快吗?
编辑:您还可以设置默认始终加载的默认版本。你可以通过 运行 nvm alias default 6.9.1
.
您可以尝试将脚本更改为:
if [[ $(node -v) != "v6.9.5" ]]; then
nvm install v6.9.5
nvm alias default v6.9.5
fi
这会花一点时间,但只是第一次
这行得通。如果use
失败,则执行install
.
#!/bin/sh
nvm use 14.18.1 || nvm install 14.18.1
# or if you don't need the warning
nvm use 14.18.1 2>/dev/null || nvm install 14.18.1
我有一个 bash 别名,我为此使用了多个版本:
alias nvmuse='nvm use || nvm install $(cat .nvmrc)'
在当前版本的 nvm 中,nvm install
不会重新安装已安装的节点。
示例:
$ nvm install v16.0.4
v16.14.2 is already installed.
# The same if you have put the version in your project's .nvmrc
$ nvm install
v16.0.4 is already installed.
但是请注意,如果您指定了一个 不明确的 版本,例如 v16
并且 更新版本 v16 可用,然后 nvm 将下载并安装较新版本,忽略您的旧版本 v16。
$ node --version
v16.0.4
$ nvm install v16
Downloading and installing node v16.14.2...
因此,如果您始终希望成为 up-to-date 并拥有最新的安全补丁,那么指定 v16
是很好的选择。但最终你可能会安装很多版本的节点!
要只安装一个版本(以节省磁盘 space,或保留您之前使用 npm 全局安装的软件包)然后指定完整版本 v16.0.4
。