ChatGPT解决这个技术问题 Extra ChatGPT

如何在 Windows 上更新 npm?

这个问题的答案是社区的努力。编辑现有答案以改进这篇文章。它目前不接受新的答案或交互。

我试过 this

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

......但它没有工作。

如何在 Windows 上执行此操作?

更新没有内置自动更新程序的软件的通常过程是下载并安装最新版本。你试过吗?
@Juhana 我在想也许有某种方法可以通过 npm 来实现,如该链接中所述。
你可以用巧克力来做到这一点。请在此处查看我的答案以获取更多信息:stackoverflow.com/a/19915418/373655
那么你如何在 Windows 上使用 sudo 呢? superuser.com/questions/42537/…
sudo 在 Windows 上不起作用...

R
Robert Baker

注意:问题是专门询问如何升级 npm,而不是 Node.js。如果您想在 Windows 上通过 CLI 更新 Node.js,我建议使用 chocolatey

我应该选择什么方法来更新 NPM?

Node.js v16 或更高版本? npm 安装 -g npm

npm 安装 -g npm

Node.js v14 或更低版本?考虑更新到最新的 LTS 版本的 Node.js npm-windows-upgrade

考虑更新到 Node.js 的最新 LTS 版本

npm-windows-升级

使用 npm-windows-upgrade 升级

以管理员身份运行 PowerShell

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

注意:如果您运行 Node.js 安装程序,它将替换 Node.js 版本。

在 Node.js 安装的地方升级 npm。

不修改默认路径。

不更改默认全局包位置。

允许轻松升级和降级并安装特定版本。

NPM 和 Node.js (https://nodejs.org/en/download/releases/) 之间匹配的版本列表 - 但您需要下载 Node.js 安装程序并运行它来更新 Node.js (https: //nodejs.org/en/)

使用 npm 升级

npm install -g npm

注意:一些用户仍然报告使用 npm 更新 npm 的问题,但我没有使用 v16+ 的经验。


在让我的升级时遇到问题,这个脚本运行良好。谢谢。
Microsoft 建议在他们的 nodejs-guidlines repo on github 中使用它。它还建议用于管理节点版本的工具。
这对 npm 非常有用。我想我会提到,因为问题本身是为了更新节点和 npm,所以为了更新我必须卸载/重新安装节点,并运行这个升级程序(不确定节点安装程序是否会像我一样自行完成先升级了)
节点本身呢?
我按照说明进行操作,但在运行“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.
j
josh3736

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


注意 32 位和 64 位 MSI。不要只点击“Windows Installer”链接——那是 32 位的。检查您当前的 nodejs 驻留在“程序文件”或“程序文件(x86)”中的位置。 “x86”表示 32 位。请参阅下面有关“旧版本安装在不同目录中”的评论。
截至目前(2014 年 11 月),这将为您提供最新的节点(0.10.33),但不是最新的 npm——您将获得 npm 1.4.28。要在 Windows 上更新到现代 (2.xx) npm,请按照此处的说明进行操作:github.com/npm/npm/wiki/Troubleshooting#upgrading-on-windows
节点安装程序包含节点发布时可用的最新版本的 npm。 (在 1.x 分支上)
我建议先从“程序和功能”中卸载您当前的节点版本...
(2018 年 2 月;它一定变得更容易了!)我已经使用 Node 和 npm 工作了几年。我从 nodejs.org 获得 Node msi。我使用的每个 msi 都从旧的 Node 版本升级,没有任何投诉或通知。最近的 Node msi 包含一个 npm,但有时是一个旧的 npm。 docs.npmjs.com/troubleshooting/…npm install -g npm 有效。我已经做到了;我没有遇到困难。最近,我升级了 Node 并获得了当前的 npm。
G
Gal Margalit

要更新 NPM,这对我有用:

在你的 shell 中导航到你的节点安装目录,例如 C:\Program Files (x86)\nodejs

运行 npm install npm(无 -g 选项)


这实际上是 Windows 上推荐的方法之一:github.com/npm/npm/wiki/Troubleshooting#upgrading-on-windows
在我通过接受的答案更新节点后,这对我有用。
@singe3 必须提升命令提示符(以管理员身份启动)才能修改 C:\Program Files。我不太喜欢这种方法,因为“npm install -g”会尝试在 Program Files 下安装,因此必须始终运行 cmd 提示符以安装其他全局包。手榴弹链接中的选项 2 更好恕我直言:删除 Program Files\nodejs\npm.cmd 所以它将使用用户的本地 npm。
我需要使用 npm install npm@latest
@TryingToImprove 你应该卸载节点,删除程序文件\节点和%appdata%\节点。重新安装节点。然后使用 npm-windows-upgrade (见我的回答)。 npm-windows-upgrade 是最好的解决方案,并且没有像这里的其他答案那样的陷阱。您现在的陷阱是系统上有 2 个 npm 版本,并且取决于 npmrc 文件,您可能有多个全局包和不一致。就像更新全局包但仍然获得旧版本......
T
Tom Stickel

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

这应该适用于任何人。我对运行 EXE 文件或 MSI 文件的愿望为零。卸载/重新安装,或手动删除文件和文件夹。 1999 年就是这样:P

运行这个来更新 NPM: 以管理员身份运行 PowerShell npm i -g npm // 这行得通-windows-upgrade(由“罗伯特”回答提供)

运行这个来更新 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 : Could not find a part of the path ...."**,见下文...向下滚动。阅读 Web 响应...它至少是通过防火墙/代理(如果你有或者已经运行代码通过...

否则

您可能需要设置代理

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

2个可能的错误

它找不到路径解决方案“where.exe 节点”的路径(由 Lonnie 最佳答案提供)例如,如果 Node.js 不存在于“程序文件(x86)”中,也许与 where.exe 一起存在,它存在于“C: \程序文件\nodejs\node.exe'。 wget https://nodejs.org/download/release/latest/win-x64/node.exe -OutFile 'C:\Program Files\nodejs\node.exe' 现在它可能会尝试升级,但您会收到另一个错误,“ node.exe 正被另一个进程使用。”关闭 /shutdown 其他控制台 .. 命令提示符和 PowerShell 窗口等。即使您在命令提示符中使用 npm,也请关闭它。

npm -v (3.10.8)

节点-v(v6.6.0)

完毕。我在我想要的版本。


我的节点位于 c:\Program Files\nodejs
这是唯一仍然可以工作的答案(其他人看起来很旧且已弃用),感谢上帝,它可以工作。
删除以前版本的 nodejs 实例后(如程序文件、用户数据等)。当我尝试安装 8.x 版本的 nodejs 时,它给了我错误,就像之前版本的 nodejs 已经安装一样。它解决了我的问题。
这仅适用于大于 8.0.0 的节点版本,我的是 6.xx 它不适合我。我想升级 ADO 代理
J
Juan David

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

 npm install npm@latest -g

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


更新 npm 的最简单和最佳答案
如果你安装了 nodejs,那么在 Windows 上安装了 两个 版本的 npm。运行 npm install npm@latest -g 只更新全局( -g )安装的一个( %appdata%\npm\ )。要更新 nodejs ( %ProgramFiles%\nodejs\node_modules\npm ) 附带的 npm,您可以从 nodejs.org/en 下载 .msi 安装程序并运行它。其他官方升级 npm 的方法:github.com/npm/npm/wiki/Troubleshooting#upgrading-on-windows
为我工作。谢谢 :)
为我工作:)
这似乎是最好的答案,因为它很简单。
A
Ahmad M

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

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

> choco install nodejs

更新到最新版本

> choco update nodejs

对于 npm

> choco update npm

choco update npm 已弃用。使用 npm-windows-upgrade 更新 npm。 github.com/felixrieseberg/npm-windows-upgrade
@Robert choco update 命令已弃用,但我们仍然可以使用 choco upgrade 命令
@Aqib 包 npm 在巧克力中已弃用。请参阅chocolatey.org/packages/npm
按照这个建议,chocolatey 安装了一个非常旧的 npm 版本,它覆盖了我稍微旧的版本,导致非常糟糕的事情发生。
P
Peter Mortensen

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

https://i.stack.imgur.com/PcfrZ.png


当然是@BrianDiPalma。添加了屏幕截图以显示从 2.14.12 升级到 3.8.2
n
naXa stands with Ukraine

这对我来说很好,可以在 Windows 7 x64 上更新 npm:

Windows 启动

所有程序

节点.js

Node.js 命令提示符(替代单击)

以管理员身份运行 $ npm -g install npm

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

希望这可以帮助。


此解决方案修改 nodejs 目录,留下一个孤立的 npm。如果您的机器上有超过 1 个用户,那么您只是破坏了其他所有人的 NPM。这种方法也会导致全局包出现问题。通过此答案安装的 npm 没有 npmrc 文件,因此未来的全局包可能会安装在错误的目录中。如果您更新节点,则 nodejs/npm.cmd 现在已恢复。因此,如果 nodejs 更新 npm,除非您再次运行该命令,否则您将停留在旧版本上。
B
BrunoLM

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

优秀的答案。许多人当然会在最后一部分使用 C:\Program Files\nodejs\node.exe
o
ofir_aghai

1.安装最新的npm版本

npm install –g npm@latest 

(你可以输入“npm –version”来检查)

2.安装节点

a. 通过以下 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 因为你的环境已经改变
P
Peter Mortensen

使用 Upgrade npm on Windows

这是用户在 Windows 上升级 npm 的官方文档!

这是我的截图!

https://i.stack.imgur.com/snpdn.png


微星也是另一种选择!
从您链接到的页面:“这是由 Microsoft DX 工程师制作的小工具”。所以说“这是官方文件”可能有点误导。听起来你是在说它是来自节点或 npm 人的官方。
P
Peter Mortensen

对于它的价值,我不得不结合几个答案......

在控制面板添加/删除程序中卸载 Node.js。删除目录,包括 C:\Program Files (x86)\nodejs\ 和 C:\Program Files\nodejs\(如果存在)。安装最新版本,http://nodejs.org/download/


你能记得你为什么要这样做吗?我只是尝试下载,安装它并立即运行。
不,但我认为旧版本的节点将它安装在路径中的不同 Windows 目录中。至少这是我的假设
P
Peter Mortensen

如何更新 Node.js:

卸载 Node.js。单击开始菜单,键入“更改或删除程序”,单击显示的项目,在列表中找到 Node.js 并将其卸载。删除目录,包括 C:\Program Files (x86)\nodejs\ 和 C:\Program Files\nodejs\(如果存在)。安装最新版本,https://nodejs.org/en/download

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

如何更新 NPM:

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

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

所有都经过测试并在 Windows 10 (2017) 上运行。


A
Adiii

这是维护 NODE.Js i NVM 版本的最佳工具

https://i.stack.imgur.com/k88UI.jpg


这里最强大和最方便的答案? UPVOTE这个,人们!如果你同意。
L
Lonnie Best

对我来说,在完全卸载 node 10.29,然后安装 node 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

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


m
manish kumar

对于 NodeJS

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

用于 Npm

以管理员身份运行 PowerShell

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

A
Abdullah Ibn Mannan

这对我来说很好

以管理员身份运行命令提示符导航到包含 nodejs 的文件夹(例如 C:\Program Files\nodejs) 运行 Powershell -ExecutionPolicy Unrestricted 运行 npm-windows-upgrade 这将显示可安装的版本列表。只需通过向上/向下键选择您想要的版本并按 Enter。这将更新你的 npm 检查当前版本的 npm 运行 npm --version

Command Prompt Screenshot


c
cilerler

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

转到 Windows > 开始 > Node.js 右键单击 Node.js 命令提示符单击以管理员身份运行

右键单击 Node.js 命令提示符

点击以管理员身份运行

ping registry.npmjs.org

npm 查看 npm 版本

cd %ProgramFiles%\nodejs

npm 安装 npm@latest

并且 npm 更新成功。早些时候我正在尝试 CMD 并且那是抛出错误。可能是通过运行 NodeJs 命令提示符解决的一些路径问题。希望它对你有用。尝试这个。


P
Peter Mortensen

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

要获得更新 Node.js 的最佳方式(至少对我而言),请转到 https://nodejs.org/en/ 然后下载最后一个版本并将其安装在您在 - 1 分钟内安装上一个版本的同一文件夹中,它是完毕。您不需要删除任何旧文件。

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


也许在尝试其他解决方案时,我不小心更新了 npm。要更新它,请输入 cmd:npm install --save latest-version
有时我仍然会问自己为什么要使用 Windows。感谢您的简单解决方案。
P
Peter Mortensen

要安装更新,只需从 Nodejs.org 站点 download the installer 并再次运行它。新版本的 Node.js 和 NPM 将替换旧版本。


这在我使用 Windows 10 的情况下不起作用。我有 npm v5.4.2node 7.5.0。当我想安装 node v9.0.0 npm -v 时说 5.4.2 而不是 5.5.1 应该是
P
Peter Mortensen

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

第 1 步:首先,确保您已经安装了 Chocolatey。如果没有,使用管理 shell 通过 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


H
Hafiz Shehbaz Ali

按照以下步骤操作窗口 10 或窗口 8

按 WIN + R 并键入 cmd 并输入

npm i -g npm@next

npm i -g npm@next 或 npm i -g node@{version}

从环境变量 PATH 中删除环境路径 C:\Program Files\nodejs。

在 cmd 中输入 refreshenv

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

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


P
Peter Mortensen

followed josh3737 并从 Node.js 主页安装了最新的 MSI。

但是我还有一个额外的问题,我在命令行上仍然有旧版本的 Node.js 和 npm。该问题是由新安装引起的,并且它已安装到

C:\Program Files (x86)\nodejs\

而不是之前的安装

C:\Program Files\nodejs\

新安装在旧目录之后将新目录添加到我的路径变量中。所以旧安装仍然是路径中的活动安装。从 system 路径中删除 C:\Program Files\nodejs\ 并从 user 路径中删除 C:\Users\...\AppData\Roaming\npm 并重新启动命令行后,新安装处于活动状态。

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


P
Peter Mortensen

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(死链接)。

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


J
Jitendra Pawar

您可以使用以下命令:

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

如果您是从以前版本的节点升级,那么您将需要更新所有现有的全局包。您还可以指定要更新的包名称。


r
robinhood9

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

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

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


“Powershell 仍在使用旧版本的 node 和 npm。”您过去可能通过修改路径或运行 npm i -g npm 进行了其他一些更新方法。如果您将来遇到任何问题,那么您必须这样做:github.com/felixrieseberg/…
P
Peter Mortensen

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


N
Nithin Baby

这对我有用。

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

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


K
Kshri

开始搜索windows powershell 右键以管理员身份运行 输入:where.exe node(返回node.exe在你系统中的路径。复制这个) wget https://nodejs.org/download/release/latest/win-x64 /node.exe -OutFile 'PATH-OF-NODE.EXE_WHICH_YOU_COPIED_JUST_NOW' 要检查它是否有效,请转到 Git bash/Normal 命令提示符并键入: node -v 在这里您可以找到当前版本的节点:https:/ /nodejs.org/en/blog/release/