如何在 Windows 上更新 npm?

Posted

技术标签:

【中文标题】如何在 Windows 上更新 npm?【英文标题】:How can I update npm on Windows? 【发布时间】:2020-10-31 08:35:22 【问题描述】:

我试过this:

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

...但是没有用。

如何在 Windows 上执行此操作?

【问题讨论】:

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

这是upgrade npm on Windows 的最佳新方式。

以管理员身份运行 PowerShell

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

注意:不要运行npm i -g npm。而是使用 npm-windows-upgrade 来更新 npm。此外,如果您运行 Node.js 安装程序,它将替换 Node.js 版本。

在 Node.js 安装的地方就地升级 npm。 轻松更新,运行npm-windows-upgrade -p -v latest即可更新到最新版本。 不修改默认路径。 不更改默认全局包位置。 允许轻松升级和降级。 NPM 和 Node.js (https://nodejs.org/en/download/releases/) 之间匹配的版本列表 - 但您需要下载 Node.js 安装程序 并运行它来更新 Node.js (https://nodejs.org/en/ )

【讨论】:

升级我的时遇到问题,这个脚本运行良好。谢谢。 微软建议在他们的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.【参考方案2】:

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

【讨论】:

注意 32 位和 64 位 MSI。不要只点击“Windows Installer”链接——那是 32 位的。检查您当前的 nodejs 驻留在“程序文件”或“程序文件(x86)”中的位置。 “x86”表示 32 位。请参阅下面有关“旧版本安装在不同目录中”的 cmets。 截至目前(2014 年 11 月),这将为您提供最新的节点 (0.10.33),但不是最新的 npm——您将获得 npm 1.4.28。要在 Windows 上更新到现代 (2.x.x) 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。【参考方案3】:

要更新 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 你应该卸载node,删除程序文件\node和%appdata%\node。重新安装节点。然后使用 npm-windows-upgrade (见我的回答)。 npm-windows-upgrade 是最好的解决方案,并且没有像这里的其他答案那样的陷阱。您现在的陷阱是系统上有 2 个 npm 版本,并且取决于 npmrc 文件,您可能有多个全局包和不一致。就像更新全局包但仍然获得旧版本...【参考方案4】:

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

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

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

否则

您可能需要设置代理

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

2 个可能的错误

    找不到路径解决方案的路径“where.exe node”(由Lonnie Best Answer提供)

    例如如果 Node.js 不存在于“Program Files (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'
    

    现在它可能会尝试升级,但您收到另一个错误,“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.x.x。它不适合我。我想升级 ADO 代理【参考方案5】:

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

 npm install npm@latest -g

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

【讨论】:

更新 npm 的最简单和最佳答案 如果你安装了 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 为我工作。谢谢你:) 为我工作:) 这似乎是最好的答案,因为它很简单。【参考方案6】:

您可以使用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 版本,它覆盖了我稍微旧的版本,导致非常糟糕的事情发生。【参考方案7】:

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

【讨论】:

当然是@BrianDiPalma。添加屏幕截图以显示从 2.14.12 升级到 3.8.2【参考方案8】:

这对我来说很好,可以在 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

希望这会有所帮助。

【讨论】:

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

以管理员身份打开 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【参考方案10】:

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 install

【讨论】:

这对我有用..您可能需要在安装完成后使用 npm rebuild node-sass --force 因为您的环境已经改变【参考方案11】:

使用Upgrade npm on Windows

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

这是我的截图!

【讨论】:

msi 也是另一种选择! 从您链接到的页面:“这是 Microsoft DX 工程师制作的小工具”。所以说“这是官方文件”可能有点误导。听起来你是在说它是来自 node 或 npm 人的官方。【参考方案12】:

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

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

【讨论】:

你能记住任何具体的为什么你必须这样做吗?我刚刚尝试下载、安装,它立即生效。 不,但我认为旧版本的节点将它安装在路径中的不同 Windows 目录中。至少这是我的假设【参考方案13】:

如何更新 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) 上测试并运行。

【讨论】:

【参考方案14】:

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

适用于 Windows 的节点版本管理器 (nvm) 但对于 Windows,带有安装程序。 Download Now!这一直是节点版本管理器,不是 io.js 管理器,所以没有对 io.js 的支持。但是,支持节点 4+。

【讨论】:

这里最强大和最方便的答案? UPVOTE这个,人们!如果您同意。【参考方案15】:

对我来说,在完全卸载 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 报告了升级版本,而不是之前版本的不需要的残余。

【讨论】:

【参考方案16】:

对于 NodeJS

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

Npm

以管理员身份运行 PowerShell

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

【讨论】:

【参考方案17】:

这对我来说很好用

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

    导航到包含 nodejs 的文件夹(例如 C:\Program Files\nodejs)

    运行 Powershell -ExecutionPolicy Unrestricted

    运行 npm-windows-upgrade

    这将显示可供安装的版本列表。只需通过向上/向下键选择您想要的版本并按 Enter。 这将更新您的 npm 检查当前版本的 npm

    运行 npm --version

Command Prompt Screenshot

【讨论】:

【参考方案18】:

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

转到Windows &gt; Start &gt; 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 命令提示符解决的一些路径问题。希望它对你有用。试试这个。

【讨论】:

【参考方案19】:

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

如需更新 Node.js 的最佳方式(至少对我而言),请转至 https://nodejs.org/en/ 然后下载最后一个版本并将其安装在与以前版本相同的文件夹中 - 1 分钟就完成了。您无需删除任何旧文件。

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

【讨论】:

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

要安装更新,只需从 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 应该是【参考方案21】:

到目前为止,我发现更新 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

【讨论】:

【参考方案22】:

按照这些步骤操作窗口 10 或窗口 8

按WIN+R,输入cmd,输入 npm i -g npm@next npm i -g npm@nextnpm i -g node@version 从环境变量 PATH 中删除环境路径 C:\Program Files\nodejs。 在cmd中输入refreshenv

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

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

【讨论】:

【参考方案23】:

我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 然后安装新版本来解决。

【讨论】:

【参考方案24】:

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

【讨论】:

【参考方案25】:

您可以使用以下命令:

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

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

【讨论】:

【参考方案26】:

这可能对某人有所帮助。 “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/…【参考方案27】:

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

【讨论】:

【参考方案28】:

这对我有用。

    打开一个本地文件夹,而不是安装 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,但它会产生错误。

【讨论】:

【参考方案29】:
    开始 搜索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/

【讨论】:

以上是关于如何在 Windows 上更新 npm?的主要内容,如果未能解决你的问题,请参考以下文章