如何使用nvm正确升级节点


231

是否可以直接升级node而不是手动安装最新的稳定版本?

我已经安装了Node.js的版本5.0nvm,但现在我想将其更新到5.4。我试图避免必须手动重新安装所有全局软件包(例如,通过运行npm install -g grunt-cli bower yo yoman-angular-generator blabla blablablabla...)。

Answers:


327

这可能起作用:

nvm install NEW_VERSION --reinstall-packages-from=OLD_VERSION

例如:

nvm install 6.7 --reinstall-packages-from=6.4

然后,如果需要,您可以使用以下方法删除以前的版本:

nvm uninstall OLD_VERSION

在您的情况下,NEW_VERSION = 5.4 OLD_VERSION = 5.0

或者,尝试:

nvm install stable

1
剂量使用nvm install stable删除所有安装的软件包,包括已安装的节点,而不是更新它们?
Syed

1
实际上,这不再起作用。npm有一个问题:github.com/creationix/nvm/issues/811
jhuesos,2016年

5
通过nvm ls-remote你可以看到所有版本。
丹尼尔(Daniel)

7
这对我的作品:nvm install node --reinstall-packages-from=$(nvm current)。这样会将Node.js更新到最新版本,并从以前的版本重新安装npm全局软件包。
cyfrost

如果无法卸载,请使用nvm deactivate并重试。
izilotti

185

您可以更简单地运行以下命令之一:

最新版本
nvm install node --reinstall-packages-from=node
稳定(LTS)版本
nvm install lts/* --reinstall-packages-from=node

这将安装适当的版本,然后从当前使用的节点版本重新安装所有软件包。这样可以避免您手动处理特定版本。

编辑-根据@ m4js7er注释添加了用于安装LTS版本的命令。


20
如果要更新到最新的稳定版本(lts-建议大多数用户使用),则应运行:nvm install lts/* --reinstall-packages-from=node。之后,您可以使用清理您的版本nvm uninstall [old version]。您可以使用列出所有已安装的版本nvm ls
m4js7er

三思而后行--reinstall-packages-from=node您可以为版本6、8和10使用不同的全局环境
contributorpw

1
我捆绑了该命令,nvm install lts/* --reinstall-packages-from=node但是它给了我一个错误,说Version 'lts/*' not found - try 'nvm ls-remote' to browse available versions.我正在使用NVM版本0.30.1,也许我的NVM太旧了。我结束了手动更换lts/*10.15.2/*得到它的工作。
张张

16

两个简单的解决方案:

要安装最新版本的node并重新安装旧版本的软件包,只需运行以下命令。

nvm install node --reinstall-packages-from=node

要安装最新lts版本(长期支持)的节点并重新安装旧版本的软件包,只需运行以下命令。

nvm install --lts /* --reinstall-packages-from=node

这是支持此答案的GIF虚拟机


If --reinstall-packages-from is provided, it must point to an installed version of node.
无法解决

@wickywills“节点:这将安装最新版本的节点”,也许您已经安装了LTS或特定版本,因此node未指向已安装的最新版本。或者您需要更新nvm。
iBaff

10

如果您有4.2并想安装5.0.0,则

nvm install v5.0.0 --reinstall-packages-from=4.2

gabrielperales的答案是正确的,只是他错过了结尾处的“ =”符号。如果不加“ =”符号,则将安装新的节点版本,但不会安装软件包。

来源:sitepoint


2

Node.JS安装新版本。

步骤1:NVM安装

npm i -g nvm

步骤2:安装NODE最新版本

nvm install *.*.*(NodeVersion)

步骤3:选定的节点版本

nvm use *.*.*(NodeVersion)


0

Bash别名,用于更新当前活动版本:

alias nodeupdate='nvm install $(nvm current | sed -rn "s/v([[:digit:]]+).*/\1/p") --reinstall-packages-from=$(nvm current)'

该部分sed -rn "s/v([[:digit:]]+).*/\1/p"将转换来自的输出,nvm current以便仅返回主要版本的node,即:v13.5.0-> 13

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.