我刚刚安装了Node.js和NPM(节点包管理器)

我安装了NPM以访问其他Node.js模块。

在我安装Node.js和NPM之后,我注意到这两个版本都不可用。

我想知道:如何将Node.js、NPM和我的Node.js模块升级到最新版本?

我需要卸载Node.js和NPM并重新安装最新版本吗?

这是到目前为止我所做尝试的链接。此链接是npm的一部分。


当前回答

我们可以通过以下方式更新npm的特定版本

npm install -g npm@8.12.1 

其他回答

要使用npm安装最新版本的npm,请执行以下操作:

sudo npm install npm@latest

我在Linux上运行这个,所以我不确定其他操作系统。

在Linux上,您还可以运行:

sudo apt-get update
sudo apt-get upgrade

这将告诉apt-get包管理器更新和升级所有包。

如果您想了解更多信息,请使用nvm

非挥发性物质Nvm窗口

对于windows,请按照以下步骤进行安装

为Windows用户升级

Windows用户应阅读npm wiki中的疑难解答>Windows升级。

使用PowerShell在windows 10上升级(第三方编辑)

上面的windows疑难解答#升级链接指向github页面npm windows升级。下面的行是自述文件中的引号。我使用节点v5.7.0和powershell(可能是powershell版本5.0.10586.122)成功地从npm 2.7.4升级到npm 3.9.3

首先,确保您可以通过运行来自提升的PowerShell的以下命令。运行PowerShell作为管理员,单击“开始”,搜索PowerShell,右键单击PowerShell,然后选择以管理员身份运行。

Set-ExecutionPolicy Unrestricted -Scope CurrentUser -Force    

然后,要安装和使用此升级工具,请运行(也可以从提升的PowerShell或cmd.exe):

npm install --global --production npm-windows-upgrade
npm-windows-upgrade

对于Cygwin用户:

在Cygwin中安装n(节点版本管理器)不起作用,而是使用以下命令更新节点:

wget https://nodejs.org/download/release/latest/win-x64/node.exe -OutFile 'C:\pathto\nodejs\node.exe'
# Updating npm
npm i -g npm

是的,您需要先安装wget。

对于Linux,我建议使用包管理器更新节点:

Node预装了npm,但管理器的更新频率比Node高。运行npm-v查看您的版本,然后运行npm installnpm@latest-g安装最新的npm更新。如果要确保npm正确更新,请再次运行npm-v。

要更新NodeJS,您需要npm方便的n模块。运行以下代码以清除npm的缓存,安装n,并安装Node的最新稳定版本:

sudo npm cache clean -f
sudo npm install -g n
sudo n stable

要安装最新版本,请使用n最新版本。或者,可以运行n#.#.#以获取特定节点版本。


当谈到Windows/macOS时,我建议在Nodejs.org上使用Installers

Node.js下载页面包含Windows和macOS的二进制软件包,但为什么要让你的生活更困难呢?预装的安装程序-适用于Windows的.msi和适用于macOS的.pkg-使安装过程难以置信地高效和易于理解。下载并运行该文件,并让安装向导负责其余部分。每次下载更新后,Node和npm的较新版本都将替换旧版本。

或者,macOS用户可以使用上面的npm和n指令。


在更新node_modules dependencies文件夹时,我建议跳过所有可能会让您头疼的事情,只需转到特定的项目并重新运行npm安装。

在任何人这样做之前,我建议首先检查package.json文件中的以下内容:

作为NodeJS包的用户,您可以在package.json文件中指定应用程序可以接受哪些类型的更新。例如,如果您从软件包版本1.0.4开始,这是您可以通过三种基本方式指定允许的更新版本范围的方式:

允许修补程序版本:1.0或1.0.x或~1.0.4允许次要版本:1或1.x或^1.0.4允许主要版本:*或x

说明:

存在不兼容API更改时的MAJOR版本。-->~

以向后兼容方式添加功能时的MINOR版本。-->^

完成向后兼容错误修复时的PATCH版本。-->*