我试了一下:

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

...但这并没有起作用。

如何在Windows上做到这一点?


当前回答

PowerShell不直接执行npm,所以我建议使用

.\npm install -g npm-windows-upgrade
.\npm-windows-upgrade

但它失败了:

你想安装npm 6.1.0,但已经安装的版本是3.10.10。

一个常见的原因是尝试“npm安装npm”或“npm升级npm”。到目前为止,唯一的解决方案是完全卸载Node.js,然后重新安装。有关一个小教程,请参见http://aka.ms/fix-npm-upgrade(死链接)。

请考虑向npm-windows-upgrade报告您的问题。

其他回答

您可以使用这些命令:

npm cache clean
npm update -g [package....]

如果要从以前版本的node升级,则需要更新所有现有的全局包。 您还可以指定要更新的包名。

为了更新NPM,这对我来说很有效:

在shell中导航到节点安装目录,例如C:\Program Files (x86)\nodejs 运行NPM install NPM(没有-g选项)

对我来说,在完全卸载节点10.29,然后安装节点4.2.2之后,在我的c:\windows文件夹中仍然保留了一个10.29 node.exe文件。

我通过使用以下命令发现了这一点:

where.exe node

命令返回:

C:\Windows\node.exe
C:\Program Files\nodejs\node.exe

因此,即使我已经通过msi可执行文件成功安装了4.2.2版本,命令节点-v仍然会报告我正在运行10.29版本。

我通过删除这个文件解决了这个问题:

C:\Windows\node.exe

此后,node -v将报告升级后的版本,而不是之前版本中不需要的残余版本。

以管理员身份打开PowerShell。

要安装第一次,您可以使用这个小脚本下载最新的msi并运行它

$nodeLatest=((curl https://nodejs.org/download/release/latest/).Content | findstr x64.msi) -replace "<(.*?)>", "" -replace "\s+.+", "";
wget "https://nodejs.org/download/release/latest/$nodeLatest" -OutFile (join-path $env:TEMP node.msi); Start-Process (join-path $env:TEMP node.msi)

在未来的升级中,你可以下载node.exe并更新npm

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

现在你应该有了最新的节点和npm。


我更进一步,决定为Windows实现一个nvm。

https://github.com/brunolm/nvm

Install-Module -Name power-nvm

nvm install latest
nvm default latest

好了,朋友们,我阅读了(在Windows上尝试了)之前所有的东西,所有这些答案都有自己的缺点。

关于更新Node.js的最佳方法(至少对我来说),请访问https://nodejs.org/en/ 然后下载最后一个版本,并将其安装到您在1分钟内安装前一个版本的相同文件夹中,这样就完成了。您不需要删除任何旧文件。

然后更新npm输入cmd: npm install——save latest-version