如何在Windows上更新npm?


601

我尝试了这个

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

...但是没有用。

如何在Windows上执行此操作?


3
更新没有内置自动更新程序的软件的通常过程是下载并安装最新版本。你尝试过吗?
JJJ

9
@Juhana我在想也许有某种方法可以通过该链接中提到的npm实现。
加丁

1
您可以用Chocolatey做。在这里查看我的答案以获取更多信息:stackoverflow.com/a/19915418/373655
rob

6
那么,您如何在Windows上使用sudo?superuser.com/questions/42537/...
阿兰穆赫兰

3
sudo在Windows上不起作用...
Blairg23'9

Answers:


2017

这是在Windows升级npm的最佳新方法。

以管理员身份运行PowerShell

Set-ExecutionPolicy Unrestricted -Scope CurrentUser -Force
npm install -g npm-windows-upgrade
npm-windows-upgrade

注意:请勿运行npm i -g npm。而是使用npm-windows-upgrade来更新npm。另外,如果您运行NodeJS安装程序,它将替换节点版本。


9
在遇到无法升级的问题时,此脚本运行完美。谢谢。
atom0s

8
微软建议在github上nodejs-guid回购中使用它。它还建议了用于管理节点版本的工具。
Christopher Currens 2015年

9
这对npm非常有效。我想我要提一提,因为问题本身就是要更新节点和npm,要同时更新这两个节点,我必须卸载/重新安装节点,并同时运行此升级程序(不确定是否节点安装程序会像我一样自行完成此操作)首先进行了升级)
edencorbin '16

125
节点本身呢?
jenson-button-event

26
我遵循了说明,但是在运行“ npm-windows-upgrade”时,出现以下错误:npm-windows-upgrade : The term 'npm-windows-upgrade' is not recognized as the name of a cmdlet, function, script file, or operable program. Check the spelling of the name, or if a path was included, verify that the path is correct and try again.
Ben Carp

612

下载并运行最新的MSI。MSI将更新您已安装的节点和npm。


25
注意32位和64位MSI。不要只单击“ Windows Installer”链接-这是32位。在“程序文件”或“程序文件(x86)”中检查当前nodejs所在的位置。“ x86”表示32位。请参阅以下有关“旧版本已安装在其他目录中”的注释。
tivnet 2014年

49
截至目前(2014年11月),这将为您提供最新的节点(0.10.33),而不是最新的npm-您将获得npm 1.4.28。要在Windows上更新为现代(2.xx)npm,请按照此处的说明进行操作:github.com/npm/npm/wiki/Troubleshooting#upgrading-on-windows
Sam Mikes

1
节点安装程序包含节点发行时可用的npm的最新版本。(在1.x分支上)
josh3736

2
我建议您先从“程序和功能”中卸载当前的节点版本...
wayofthefuture

3
(2018年2月;它一定变得更容易了!)我已经与Node和npm一起工作了几年。我从nodejs.org获得Node Msi。我使用的每个msi均已从较旧的Node版本升级,而没有任何抱怨或通知。最近的Node msi包括一个npm,尽管有时是一个旧的npm。docs.npmjs.com/troubleshooting/…表示npm install -g npm有效。我已经做到了;我没遇到困难。最近,我升级了Node并获得了当前的npm。
BaldEagle

121

要更新NPM,这对我有用:

  • 在外壳程序中导航到节点安装目录,例如 C:\Program Files (x86)\nodejs
  • 运行npm install npm(无-g选项)

7
这实际上是Windows上推荐的方法之一:github.com/npm/npm/wiki/Troubleshooting#upgrading-on-windows
grenade

3
通过接受的答案更新节点后,这对我有用。
Jamie Hutber '02

2
@ singe3必须提升命令提示符(以Admin身份启动),才能修改C:\ Program Files。我不太喜欢这种方法,因为“ npm install -g”将尝试在Program Files下安装,因此必须始终提升cmd提示符才能安装其他全局软件包。手榴弹链接中的选项2更好,恕我直言:删除Program Files \ nodejs \ npm.cmd,以便它将使用用户的本地npm。
pmont

21
我需要使用npm install npm@latest
TryingToImprove

1
@TryingToImprove您应该卸载节点,删除程序文件\ node和%appdata%\ node。重新安装节点。然后使用npm-windows-upgrade(请参阅我的答案)。npm-windows-upgrade是最好的解决方案,没有像这里其他答案那样的陷阱。现在您的陷阱是系统上的2个npm版本,并且取决于npmrc文件是否存在多个全局软件包和不一致。像更新全球软件包,但仍在获取旧版本...
Robert Baker

70

像某些人一样,我需要组合多个答案,还需要设置代理。

应该适合任何人。我对运行EXE文件或MSI文件..卸载/重新安装,或手动删除文件和文件夹的需求为零。那就是1999:P

  1. 运行此命令以更新NPM:

    管理员身份运行PowerShell

    npm i -g npm    // This works

    认为此代码实际上会升级您的npm版本

    Set-ExecutionPolicy Unrestricted -Scope CurrentUser -Force
    npm install -g npm-windows-upgrade
    npm-windows-upgrade
    
    (courtesy of "Robert" answer)

运行此命令以更新Node.js:

wget https://nodejs.org/download/release/latest/win-x64/node.exe -OutFile 'C:\Program Files (x86)\nodejs\node.exe'    (courtesy of BrunoLM answer)

如果得到`wget:找不到路径的一部分....“ **,请参见下文...向下滚动。或已经运行过代码...

除此以外

您可能需要设置代理

npm config set proxy "http://proxy.yourcorp.com:811"    (yes, use quotes)

2种可能的错误

  1. 它找不到路径解决方案“ where.exe节点”的路径(由Lonnie Best Answers提供)

    例如,如果Node.js不在“程序文件(x86)”中,也许不在where.exe中,那么它在“ C:\ Program Files \ nodejs \ node.exe”中。

    wget https://nodejs.org/download/release/latest/win-x64/node.exe -OutFile 'C:\Program Files\nodejs\node.exe'
  2. 现在,也许它尝试升级,但是出现另一个错误,“ node.exe被另一个进程使用。”

    • 关闭/ shutdown其他控制台..命令提示符和PowerShell窗口等。即使在命令提示符中使用npm,也请关闭它。

npm -v(3.10.8)

节点-v(v6.6.0)

完成。我的版本是我想要的


1
我的节点位于c:\Program Files\nodejs
malix

1
这是唯一仍然可行的答案(其他人看起来已经很老了,已经过时了),感谢上帝。
omer.ersoy

删除先前版本的nodejs实例后(例如来自程序文件,用户数据等)。当我尝试安装Node.js的8.x版本时,它给了我错误,就像已经安装了以前版本的nodejs。它解决了我的问题。
没有人

58

您可以使用Chocolatey,它是Windows的软件包管理器(例如Debian Linux的apt-get)。

重新安装(您可能需要卸载以前安装的版本)

> choco install nodejs

更新到最新版本

> choco update nodejs

对于npm

> choco update npm

7
choco update npm不推荐使用。使用npm-windows-upgrade以更新NPM。github.com/felixrieseberg/npm-windows-upgrade
罗伯特·贝克

2
@Robert choco update命令已被弃用,但我们仍然可以使用choco upgrade命令
Aqib

2
@Aqib软件包npm不推荐使用巧克力色。参见Chocolatey.org/packages/npm
罗伯特·贝克

3
遵循此建议,Chocolatey安装了一个令人难以置信的旧版本的npm,该版本取代了我的旧版本,从而导致非常糟糕的事情发生。
uglycoyote

48

您可以使用以下命令将npm更新为最新的稳定版本:

 npm install npm@latest -g

使用PowerShell运行它。此命令不需要Windows管理员权限,您可以使用以下命令验证结果npm -v


5
更新npm的最简单,最佳答案
nathanchere

1
如果安装了nodejs,则Windows 上将安装两个版本的npm。npm install npm@latest -g仅运行时更新全局(-g)已安装的一个(%appdata%\ npm \)。要更新nodejs随附的npm(%ProgramFiles%\ nodejs \ node_modules \ npm),您可以从nodejs.org/en下载.msi安装程序并运行它。升级npm的其他官方方法:github.com/npm/npm/wiki/Troubleshooting#upgrading-on-windows
pldg

1
为我工作。谢谢您:)
mudrak patel

为我工作:)
Mayank Pandeyz '18

由于其简单性,这似乎是最佳答案。
麦克普尔

24

先前的答案将适用于安装新版本的Node.js(可能是最佳选择),但是如果您依赖于特定的Node.js版本,则以下内容将起作用:“ npm install npm -g”。在命令之前和之后运行npm -v进行验证。

在此处输入图片说明


当然可以@BrianDiPalma。添加了显示从2.14.12升级到3.8.2的屏幕截图
Will Lopez

22

这对于我在Windows 7 x64上更新npm的工作正常:

  • Windows启动
  • 所有程序
  • Node.js
  • Node.js命令提示符(替代点击)
  • 以管理员身份运行

    $ npm -g install npm

  • 删除C:\Program Files\nodejs\npm.cmd新的npm将位于C:\Users\username\appdata\roaming\npm\npm.cmd

希望这可以帮助。


2
该解决方案修改了nodejs目录,只留下了一个孤立的npm。如果您的计算机上有1个以上的用户,则您破坏了其他所有人的NPM。此方法还会导致全局包出现问题。通过此答案安装的npm没有npmrc文件,因此,将来的全局软件包可能会安装在错误的目录中。如果更新节点,则现在将还原nodejs / npm.cmd。因此,如果nodejs更新npm,则除非重新运行该命令,否则您将被困在旧版本中。
罗伯特·贝克

17

以管理员身份打开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并使用

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

您现在应该拥有最新的节点和npm。


我走得更远,决定nvm为Windows 实施一个。

https://github.com/brunolm/nvm

Install-Module -Name power-nvm

nvm install latest
nvm default latest

极好的答案。当然,许多人会C:\Program Files\nodejs\node.exe在最后一部分中使用。
arviman

13

在Windows上使用Upgrade npm

这是供用户在Windows上升级npm的正式文档!

这是我的截图!

在此处输入图片说明


微星也是另一个选择!
xgqfrms

在您链接到的页面上:“这是Microsoft DX工程师制造的小工具”。因此说“这是正式文件”可能有点误导。听起来您在说这是来自Node或npm官员的官方消息。
jinglesthula

13

1.安装最新的npm版本

npm install g npm@latest 

(您可以输入“ npm –version”进行检查)


2.安装节点

一个。 通过以下URL安装节点新版本:https : //nodejs.org/en/download/current/ 遵循默认选择
b。 删除C:\ Users \\ AppData \ Roaming \ NPM
c。 删除C:\ Users \\ AppData \ Roaming \ npm-cache


可选地:

d。 (删除当前项目文件夹中的node_modules文件夹)
e。 npm缓存验证
f。 npm安装


这对我有用。.安装完成后,您可能需要使用npm rebuild node-sass --force
Abx

9

如何更新Node.js:

  1. 卸载Node.js。单击开始菜单,键入“更改或删除程序”,单击显示的项目,在列表中找到Node.js并将其卸载。

  2. 删除目录,都C:\Program Files (x86)\nodejs\C:\Program Files\nodejs\他们是否存在。

  3. 安装最新的https://nodejs.org/en/download

    卸载/删除/安装似乎是不必要的,但通常是这样,这样可以节省您的时间。这些说明来自Microsoft。

如何更新NPM:

    https://www.npmjs.com/package/npm-windows-upgrade

    这是在Windows上升级npm的官方文档。

所有组件均已通过测试并且可在Windows 10(2017)上运行。


9

为了它的价值,我不得不结合几个答案...

  1. 卸载控制面板中的Node.js 添加/删除程序
  2. 删除目录,都C:\Program Files (x86)\nodejs\C:\Program Files\nodejs\他们是否存在。
  3. 安装最新版本http://nodejs.org/download/

您还记得任何具体原因的原因吗?我只是通过下载,安装进行了尝试,并且可以立即工作。
amenthes 2014年

不,但是我认为节点的旧版本将其安装在路径中的其他Windows目录中。至少那是我的假设
蒂姆(Tim)

7

这是维护NODE版本的最佳工具。

适用于Windows 但适用于Windows的节点版本管理器(nvm),带有安装程序。立即下载!它一直是节点版本管理器,而不是io.js管理器,因此没有对io.js的支持。但是,支持节点4+。 在此处输入图片说明


1
最强大,最方便的答案在这里?支持这个人!如果你同意。
贾里德·瑟斯克

5

对我来说,完全卸载节点后。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版本,命令“ node -v”仍将继续返回10.29。

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

C:\Windows\node.exe

5

好的,我阅读(在Windows上试用过)所有以前的内容,所有这些答案都有其自身的缺点。

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

然后更新npm在cmd中键入:npm install --save latest-version


1
也许在尝试其他解决方案时,我不小心更新了npm。要更新它,请输入cmd:npm install --save
Latest

1
有时我仍然问自己为什么使用Windows。感谢您的简单解决方案。
尤里·拉莫斯

4

我遵循@ josh3737,并从node.js主页安装了最新的MSI。

但是我还有另一个问题,就是我在命令行上仍然有旧节点和npm。该问题是由新安装引起的,该新安装已安装到

C:\Program Files (x86)\nodejs\

而不是之前的安装

C:\Program Files\nodejs\

新安装将新目录添加到旧目录之后的我的path变量中。因此,旧的安装仍是该路径中的活动安装。取出后C:\Program Files\nodejs\系统路径和C:\Users\...\AppData\Roaming\npm用户路径并重新启动命令行新的安装是有活性。

也许最少的路径是与新安装无关的本地问题,但我有两个链接AppData\Roaming\npm。也许也可以通过先卸载node.js然后安装新版本来解决。


4

这对我来说很好

  1. 管理员身份运行 命令提示符

  2. 导航到包含nodejs的文件夹(例如C:\ Program Files \ nodejs)
  3. 不受限制地运行 Powershell -ExecutionPolicy

  4. 运行 npm-windows-upgrade

  5. 这将显示可安装的版本列表。只需通过向上/向下键选择所需的版本,然后按Enter。

    这会更新您的npm
  6. 查看npm的当前版本

    运行 npm --version

命令提示符截图


4

我也面临着类似的问题。我遵循以下提到的步骤,它对我有用:

  • Windows > Start > Node.js

    • 右键点击 Node.js command prompt
    • 点击 Run as administrator
  • ping registry.npmjs.org

  • npm view npm version

  • cd %ProgramFiles%\nodejs

  • npm install npm@latest

和npm更新成功。早些时候,我尝试使用CMD,这会引发错误。可能是一些通过运行NodeJs命令提示符而解决的路径问题。希望对你有用。尝试这个。



4

到目前为止,我发现最简单的更新Node.js的方法是使用Chocolatey。使用Chocolatey在Windows上安装或更新最新版本的Node.js:

步骤1:首先,确保您已经安装Chocolatey。如果不是,请使用管理外壳通过cmd.exe或PowerShell.exe 安装Chocolatey。有关更多信息,请访问:https : //chocolatey.org/docs/installation

步骤2:使用cmd.exe安装。运行以下命令:

@"%SystemRoot%\System32\WindowsPowerShell\v1.0\powershell.exe" -NoProfile -InputFormat None -ExecutionPolicy Bypass -Command "iex ((New-Object System.Net.WebClient).DownloadString('https://chocolatey.org/install.ps1'))" && SET "PATH=%PATH%;%ALLUSERSPROFILE%\chocolatey\bin"

使用PowerShell.exe进行安装,请访问:https : //chocolatey.org/docs/installation

步骤3:在cmd.exe 使用以下命令安装或更新(在管理模式下)

要安装Node.jscinst nodejs.install

要更新Node.jscup nodejs.install


4

针对窗口10或窗口8遵循以下步骤

  • 按WIN + R,然后输入cmd并输入
  • npm i -g npm@next
  • npm i -g npm@next 要么 npm i -g node@{version}
  • C:\Program Files\nodejs从环境变量PATH中删除环境路径。
  • 输入refreshenvcmd

现在,您将拥有已安装的新版本。

注意:如果不删除路径。您将看到节点的先前版本。


3

对于NodeJS

此处下载所需的节点版本msi 并安装

对于Npm

以管理员身份运行PowerShell

Set-ExecutionPolicy Unrestricted -Scope CurrentUser -Force
npm install -g npm-windows-upgrade
npm-windows-upgrade

2

Powershell不会直接执行npm,我建议使用

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

失败了:

您想安装npm 6.1.0,但是安装的版本是3.10.10。

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

请考虑将您的问题报告给http://aka.ms/npm-issues

http://aka.ms/fix-npm-upgrade <-这是一个无效的链接


1

您可以使用以下命令:

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

如果要从先前版本的节点升级,则将要更新所有现有的全局软件包。您还可以指定要更新的软件包名称。


1

这可能会帮助某人。“ npm-windows-upgrade”和安装程序都不是为我自己做的。Powershell仍在使用旧版本的node和npm。

因此,这就是我所做的(为我工作):1.从nodejs.org下载最新的安装程序。安装节点。它将更新您的节点;无处不在(Powershell,cmd等)。2.安装npm-windows-upgrade软件包(npm install -g npm-windows-upgrade)并运行npm-windows-upgrade。

我没有卸载任何东西,也没有设置任何路径。


1
“ Powershell仍在使用旧版本的node和npm。” 您过去可能通过修改路径或运行npm i -g npm来执行其他一些更新方法。如果将来遇到任何问题,则必须执行以下操作:github.com/felixrieseberg/…–
罗伯特·贝克

1

就我而言,我发现我安装了两个Node.js副本。一个在“ C:\ Program Files \ nodejs”下,另一个在“ C:\ Program Files(x86)\ nodejs”下。


0

这对我有用。

  1. 打开一个本地文件夹,而不是安装了nodejs的文件夹。
  2. 使用命令在该文件夹中安装npm npm install npm
  3. 导航到包含节点js的文件夹。(C:\ Program Files \ nodejs \ node_modules)
  4. 删除npm文件夹,并将其替换为本地文件夹中的npm和bin文件夹。
  5. 运行npm -v。现在,您将获得npm的更新版本。

注意:我尝试直接在“ C:\ Program Files \ nodejs \ node_modules”中安装npm,但创建了错误。


By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.