335

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

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

4

7 回答 7

474

这可能有效:

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 --reinstall-packages-from=current
于 2016-01-15T12:16:30.933 回答
262

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

最新版本

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

稳定(LTS)版本:(如果当前正在使用)

nvm install "lts/*" --reinstall-packages-from="$(nvm current)"

这将安装适当的版本并从当前使用的节点版本重新安装所有包。

这使您免于手动处理特定版本。


感谢 @m4js7er 对 LTS 版本的评论。

于 2016-12-13T12:48:07.720 回答
40

两个简单的解决方案:

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

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

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

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

这是一个支持这个答案的GIF动画:

非易失性

于 2017-11-14T22:21:34.340 回答
9

如果你有 4.2 并且想安装 5.0.0 那么

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

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

来源:站点点

于 2016-10-14T16:11:56.700 回答
4

Node.JS 安装新版本。

第 1 步:NVM 安装

npm i -g nvm

第 2 步:NODE 最新版本安装

nvm install *.*.*(NodeVersion)

第 3 步:选择的节点版本

nvm use *.*.*(NodeVersion)

结束

于 2019-07-06T18:52:20.547 回答
4

以下是适用于Ubuntu OS 和使用的步骤nvm

转到 nodejs 网站并获取最后一个LTS版本(例如版本将是:xyz)

nvm install x.y.z
# In my case current version is: 14.15.4 (and had 14.15.3)

之后,执行nvm list,您将获得 nvm 安装的节点版本列表。

现在您需要通过执行以下命令切换到最后安装的默认设置:

nvm alias default x.y.z

再次列出或运行nvm --version检查: 在此处输入图像描述

更新:有时即使我完成了上面的步骤它也不起作用,所以我所做的是删除符号链接/usr/local/bin

cd /usr/local/bin
sudo rm node npm npx

并重新链接:

sudo ln -s $(which node) /usr/local/bin/node
sudo ln -s $(which npm) /usr/local/bin/npm
sudo ln -s $(which npx) /usr/local/bin/npx
于 2021-01-05T15:20:50.110 回答
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以便仅返回节点的主要版本,即:v13.5.0-> 13

于 2019-12-31T17:47:43.403 回答