是否可以直接升级 node
,而不是手动安装最新的稳定版本?
我已经使用 nvm
安装了 node.js 版本 5.0
,但现在我想将它更新到 5.4
。我试图避免手动重新安装我的所有全局包(例如通过运行 npm install -g grunt-cli bower yo yoman-angular-generator blabla blablablabla
...)。
这可能有效:
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
您可以更简单地运行以下命令之一:
最新版本:
nvm install node --reinstall-packages-from=node
稳定(LTS)版本:(如果当前正在使用)
nvm install "lts/*" --reinstall-packages-from="$(nvm current)"
这将安装适当的版本并从当前使用的节点版本重新安装所有包。
这使您免于手动处理特定版本。
感谢 @m4js7er 对 LTS 版本的评论。
nvm install lts/* --reinstall-packages-from=node
。之后,您可以使用 nvm uninstall [old version]
清理您的版本。您可以使用 nvm ls
列出所有已安装的版本。
--reinstall-packages-from=node
您可以为版本 6、8 和 10 使用不同的全局环境。
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/*
以使其正常工作。
zsh: no matches found: lts/*
,只需引用 lts/* 参数以防止 Z shell 将 * 解释为通配符:nvm install 'lts/*' --reinstall-packages-from=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.
node
没有指向安装的最新版本。或者你需要更新 nvm。
nvm
,而改用名为 n
的极快且低调的脚本。我在上面制作了一个 10 分钟的视频——谈论我为什么搬到 n
以及如何使用它。该视频可在 nodecli.com/nodejs-install-n 获得
如果你有 4.2 并且想安装 5.0.0 那么
nvm install v5.0.0 --reinstall-packages-from=4.2
gabrielperales 的答案是正确的,只是他错过了末尾的“=”符号。如果您不添加“=”符号,则将安装新的节点版本,但不会安装软件包。
来源:sitepoint
以下是适用于 Ubuntu 操作系统并使用 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
https://i.stack.imgur.com/zCtUx.png
更新:有时即使我执行了上述步骤,它也不起作用,所以我所做的是删除 /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
Node.JS 安装新版本。
第 1 步:NVM 安装
npm i -g nvm
第 2 步:NODE 最新版本安装
nvm install *.*.*(NodeVersion)
第 3 步:选择的节点版本
nvm use *.*.*(NodeVersion)
结束
npm WARN deprecated nvm@0.0.4: This is NOT the correct nvm. Visit http://nvm.sh and use the curl command to install it.
用于更新当前活动版本的 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
。
对于 Windows 11,这在 cmd 上对我有用,与管理员权限一起使用:
先决条件,如果你刚刚安装了 NVM,是在 nvm 安装后打开一个新的 cmd 窗口。
在此处查看安装说明:https://github.com/coreybutler/nvm-windows
获取已安装的版本,使用
nvm list
获取当前版本
nvm current
安装最新版本
nvm install latest
检查已安装的版本以查看更新的版本,再次使用
nvm list
将当前版本设置为最新(具有管理员权限的cmd),您刚刚在上一步中安装
nvm use PUT_VERSION_NUMBER_TO_BE_USED
您可以使用再次检查更改是否成功
nvm list
删除旧版本,如果不再需要
nvm remove PUT_VERSION_NUMBER_TO_BE_REMOVED
如果要使用 LTS 版本,请使用安装
nvm install lts
nvm install stable
删除所有已安装的软件包,包括已安装的节点,而不是更新它们?nvm ls-remote
,您可以查看所有版本。nvm install node --reinstall-packages-from=$(nvm current)
。这会将 Node.js 更新到最新版本,并从以前的版本重新安装 npm 全局包。nvm deactivate
并重试。