如何使用nvm正确升级节点

时间:2016-01-15 11:54:23

标签: node.js npm nvm package-management

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

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

7 个答案:

答案 0 :(得分:225)

这可能有效:

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 :(得分:143)

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

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

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

编辑 - 添加了根据@ m4js7er评论安装LTS版本的命令。

答案 2 :(得分:10)

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

nvm install v5.0.0 --reinstall-packages-from=4.2
除了他错过了" ="最后的标志。如果你没有把#34; ="登录然后将安装新的节点版本,但不会安装包。

来源:sitepoint

答案 3 :(得分:7)

  

TWO 简单解决方案:

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

accounts.stream()
        .filter(account -> account.getMargin() >= MARGIN_LIMIT)
        .sorted(Comparator.comparingDouble(Account::getMargin)
                          .reversed()
                          .thenComparing(Comparator.comparing(Account::getName)))
        .skip(PAGE_SIZE * (page - 1))
        .limit(PAGE_SIZE)
        .collect(Collectors.toMap(
              Account::getMargin,
              x -> {
                 List<Account> list = new ArrayList<>();
                 list.add(x);
                 return list;
              },
              (left, right) -> {
                  left.addAll(right);
                  return left;
              },
              LinkedHashMap::new));

要安装最新的nvm install node --reinstall-packages-from=node lts版本的节点并重新安装旧版本的软件包,请运行以下命令。

long-term-support
  

这里有一个 GIF 来支持这个答案。   nvm

答案 4 :(得分:0)

Node.JS以安装新版本。

第1步:NVM安装

npm i -g nvm

第2步:安装NODE最新版本

nvm install *.*.*(NodeVersion)

第3步:选定的节点版本

nvm use *.*.*(NodeVersion)

完成

答案 5 :(得分: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

答案 6 :(得分:0)

以下是适用于 Ubuntu 操作系统和使用 nvm

的步骤

转到 nodejs 网站并获取最新的 LTS 版本(例如版本将是:x.y.z)

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 以检查: enter image description here

更新:有时即使我完成了上面的步骤也不起作用,所以我所做的是删除 /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