如何在 Windows 上更新 npm?
Posted
技术标签:
【中文标题】如何在 Windows 上更新 npm?【英文标题】:How do I update npm on Windows? 【发布时间】:2015-01-10 14:23:13 【问题描述】:当我从 msi (http://nodejs.org/download/) 安装节点 0.10.33 时,我得到了旧版本的 npm (1.4.28)。如何在 Windows 上升级 npm?
npm install -g npm
不起作用;我还有旧的 npm。
【问题讨论】:
您也可以在***.com/questions/18412129/…上查看问题的答案 @bohem.be - 解决如何在 Windows 上更新node
,这很有用;但这个问题/答案是关于如何更新npm
。
据我所知,npm 是节点更新或安装的一部分(节点包管理器)
这是我的最后一个答案,因为这不是一个讨论板。请检查此***.com/questions/9237715/…。并且重新阅读我对***.com/questions/18412129/… 的回答,你会看到我正在更新 npm 而不是 node。
“这是一个很不幸的常见误解,即首字母缩略词代表“节点包管理器”。”
【参考方案1】:
您需要遵循 Windows 升级说明 (https://docs.npmjs.com/try-the-latest-stable-version-of-npm)
tl;dr - npm -g install npm
确实工作,但旧版本的 npm 仍在你的 PATH 中。
要解决此问题,请执行以下操作之一:
选项2:删除两者
C:\Program Files (x86)\nodejs\npm
C:\Program Files (x86)\nodejs\npm.cmd
或者
选项 3:以管理员身份打开 cmd.exe,导航到 C:\Program Files (x86)\nodejs 和 然后在没有 -g 的情况下运行安装:
npm install npm@latest
*有一个 npm 包可以自动执行此选项 3:
npm install -g npm-win-upgrade
【讨论】:
这是我几个星期以来一直面临的问题,现在已经解决了 :) 感谢您的回答! 这里的关键是一旦你完成了上述操作,重启你的shell,让它从安装在node文件夹中的版本切换到安装在AppData文件夹中的那个 Reco for Option 3 ... 复制/粘贴 : cd /c/'Program Files/nodejs' && npm install npm@latest npm install npm@latest 工作得很好,除了在仍然是 的客户端上 为什么不使用-g
标志和npm install npm@latest
方法?它对我有用 -g
标志,而其余的都没有【参考方案2】:
对于 Windows 上的更新节点 npm
我必须删除节点:
C:\Users**您的用户**\AppData\Roaming
然后重新安装节点
【讨论】:
【参考方案3】:我们在 Microsoft Open Source 编写了一个小工具来自动化上述过程。 You can find it here 或通过在提升的命令提示符/PowerShell 中执行以下命令来安装并运行它:
npm install -g npm-windows-upgrade
npm-windows-upgrade
【讨论】:
它需要powershell。如果我无法运行从 Internet 下载的 powershell 脚本并且我没有更改设置的权限怎么办?我想我需要创建证书并签名。太头疼了 我按照所有步骤操作,但得到的只是一个错误:PS C:\Windows\system32> npm-windows-upgrade npm-windows-upgrade : The term 'npm-windows-upgrade'不被识别为 cmdlet、函数、脚本文件或可运行程序的名称。检查名称的拼写,或者如果包含路径,请验证路径是否正确并重试。在 line:1 char:1 + npm-windows-upgrade + ~~~~~~~~~~~~~~~~~~~ + CategoryInfo : ObjectNotFound: (npm-windows-upgrade:String) [], CommandNotFoundException + FullyQualifiedErrorId : CommandNotFoundException 在以管理员身份执行 Powershell 的所有步骤后,我遇到了与 @DanCsharpster 完全相同的问题。 更正:我 was 在执行 Powershell 管理员的所有步骤后遇到了与 @DanCsharpster 完全相同的问题,但通过添加 C:\Users\UserAdmin\ 解决了这个问题AppData\Roaming\npm 到我的 PATH,关闭 Powershell 并以管理员身份重新打开。 与 Dan 和 Wesley 有同样的问题。能够通过上面 Wesley 的提示解决它。【参考方案4】:我做了类似于 Sam Mikes 的事情。我之所以分享这个只是因为我无法让他的任何一个解决方案在我的装备上工作。玩了一会儿之后,这对我有用:
-
从您的环境变量中删除 NPM/Node,适用于用户和系统。
如果您打开了一个控制台,请关闭您打开的控制台,然后以管理员身份打开一个控制台
将目录更改为
%USERPROFILE%
——这是一个窗口的环境变量,可将您带到C:\Users\CurrentlyLoggedInUser
在 %USERPROFILE%、"C:\Program Files\nodejs\npm" install npm -g
中从控制台运行(您的 x86 文件夹中可能有)
如果此解决方案适合您,第 4 步就可以了,npm -v
将显示最新版本
将 Node(在 Program Files 中)/NPM(在 App Data 中 -- 安装在 Program Files 中的应该是旧的)重新添加到您的用户和系统环境变量中
注意:我过去曾使用 Microsoft 自动化脚本来解决此问题,但这只是因为我没有意识到自己来做这件事是多么容易。
【讨论】:
哈!所以我已经升级,然后需要降级并再次遇到这个问题......我最初为 LTS 4.2.3 写了这个答案,它适用于 LTS 4.4.0【参考方案5】:在 Windows 中更新您的npm
可能有多种方法
方式 1
-
以管理员身份打开你的 power shell 并逐步运行以下命令。
Set-ExecutionPolicy Unrestricted -Scope CurrentUser -Force
npm install -g npm-windows-upgrade
npm-windows-upgrade
您可以在此处选择您喜欢的 npm 版本
准备好了!
方式 2
-
您可以使用以下命令简单地升级到最新的
npm
版本
npm install npm@latest -g
或者如果您想要特定版本的npm
,只需运行
npm install npm@version -g
例如npm install npm@3.3.12 -g
现在只需运行 npm --version
或 npm -v
即可了解您当前的 npm 版本
3.3.12
是我最喜欢的npm
版本,它最适合几乎每个包。
【讨论】:
方式 2 是开箱即用的唯一方式:npm install npm@latest -g
【参考方案6】:
所以,TL;DR;这有效:
卸载节点
在命令提示符下,运行where npm
npm --version
- 这应该会与 NodeJS 附带的 NPM 版本相呼应(在撰写本文时,该版本是 3.10.10)
这对我有用(愚蠢的我!) 我(很久以前)通过巧克力安装了 npm,它在 C:\ProgramData\chocolatey\bin\npm.exe 中创建了一个巧克力启动的 npm.exe。这是 npm 版本 1.4.9,无论做什么,包括卸载和重新安装 NodeJ,都不会更新。
=======
编辑:安装节点和 npm 的更好方法
截至今天(2017 年 6 月 27 日),安装和管理 node 和 npm 的最佳方法是安装 nvm(节点版本管理器),如下所述:https://github.com/coreybutler/nvm-windows。拥有 nvm 后,安装任何节点版本都非常简单:
-
打开您喜欢的控制台(CMD、Cmder、PowerShell)
输入
nvm install 6.10.2
(安装节点版本6.10.2)
要查看当前活动的版本,请键入nvm list
。这将打印如下内容:
6.9.3
* 6.9.2 (Currently using 64-bit executable)
6.9.1
6.10.2
【讨论】:
你拯救了我的一天!!我有同样的问题。我已经使用 Chocolatey 安装了 nodejs,但我无法升级 npm 版本。【参考方案7】:所以以前的答案都没有为我解决这个问题,所以我想我会发布我的具体解决方案,我设法通过查看所有其他答案来弄清楚,所以它们真的很有帮助。
我的问题是因为我使用巧克力来安装节点和可能的 npm(现在查看巧克力网站我不应该这样做)。
为了解决这个问题,我只需要为 npm 和 node 运行相关的 choco 卸载命令,然后一切都切换到我也使用 node msi 安装的其他版本的 node(来自 node 的网站)。
我希望这对可能与我走同样道路的其他人有所帮助。
【讨论】:
【参考方案8】:使用npm-windows-upgrade 工具进行简单升级。链接中提供了步骤。
【讨论】:
【参考方案9】:我几乎尝试了所有答案,但没有一个适合我。npm-windows-upgrade 和 npm install npm@latest 等都不起作用。 对于像我这样的人,我会建议你们从Node.js website 下载最新的安装程序,让现有版本的节点目录放在它的位置上,不做任何更改,只需安装 msi 安装程序,你会结束使用升级版本的节点。 我的案例是将节点从 6 升级到 8.9.3
【讨论】:
有多种升级方式。我曾经把整个工作日都浪费在这上面。如果您遇到同样的问题,请使用我的解决方案。【参考方案10】:您需要遵循 Windows 升级说明
https://www.npmjs.com/package/npm-windows-upgrade
首先,确保您可以通过从提升的 PowerShell 运行以下命令在系统上执行脚本。要以管理员身份运行 PowerShell,请单击开始,搜索 PowerShell,右键单击 PowerShell 并选择以管理员身份运行。
-
Set-ExecutionPolicy Unrestricted -Scope CurrentUser -Force
npm install --global --production npm-windows-upgrade
npm-windows-升级
只想安装最新版本? 1.npm-windows-upgrade --npm-version 最新
【讨论】:
【参考方案11】:所有 npm install 命令都卡住了,一段时间后会抛出错误(代理错误后面)。设置代理没有帮助。这就是我所做的。
拥有 8.11 nodeJS
-
使用卸载程序从程序和功能中卸载 NodeJS。
重新启动(或者您可能可以从任务管理器中杀死所有与节点相关的进程)。
查找这些文件夹并删除它们(及其内容)(如果仍然存在)。根据您安装的版本、UAC 设置和 CPU 架构,这些可能存在也可能不存在:
• C:\Program Files (x86)\Nodejs
• C:\Program Files\Nodejs
• C:\UsersUser\AppData\Roaming\npm(或 %appdata%\npm)
• C:\UsersUser\AppData\Roaming\npm-cache(或 %appdata%\npm-cache)
• C:\UsersUser.npmrc(也可能检查不带 . 前缀的内容)
检查您的 %PATH% 环境变量以确保不存在对 Nodejs 或 npm 的引用。
如果仍未卸载,请在命令提示符下键入 where node,您将看到它所在的位置 - 删除它(也可能是父目录)。
重新启动,以防万一。
安装了 6.11 nodejs 然后就可以了。
【讨论】:
【参考方案12】:在 Windows 10 上升级 NPM
-
卸载 Node.js
重启系统
在命令提示符下键入 where npm
如果 AppData/Roaming 中存在 npm 和 npm-cache 文件夹,则删除
安装 Node.js (https://nodejs.org/en/)
【讨论】:
【参考方案13】:现在是 2021 年末,其中很多答案可能令人困惑。 npm install -g npm
可能会破坏您的安装。 (当我这样做时,我必须运行 Node MSI “修复”工具才能让它再次工作。)npm-windows-upgrade
已经有 2 年多没有发布了,并且该 repo 已被其维护者存档。
据我所知,目前有两个选项似乎可以可靠地工作。
使用 DOS 提示符下的where npm
或 WSL/Git Bash 等中的 which npm
来确定正在使用哪个 NPM 二进制文件。
cd
到该路径,然后运行 npm install npm@latest
(没有 -g
标志!)。 npm update npm
应该有同样的效果。您可能需要提升提示符(以管理员身份运行)。
通过运行 npm --version
验证这是否有效。
这对我有用。另一个选项是:
使用“添加/删除程序”设置页面完全卸载 NPM + Node。 从 Node 网站安装 MSI。【讨论】:
以上是关于如何在 Windows 上更新 npm?的主要内容,如果未能解决你的问题,请参考以下文章
如何在 Windows 上使用单个 NPM 命令运行多个 NPM 命令