如何在Windows上更新npm?


81

当我从msi(http://nodejs.org/download/)安装节点0.10.33时,我得到了npm的旧版本(1.4.28)。如何在Windows上升级npm?

npm install -g npm

不起作用 我仍然有旧的npm。


:您还可以查看该问题的答案 stackoverflow.com/questions/18412129/...
bohem.be

@ bohem.be-解决了如何node在Windows上进行更新,这很有用;但这问题/答案与如何更新有关npm
山姆·迈克斯,2015年

据我所知,npm是节点更新或安装(节点软件包管理器)的一部分
bohem.be

这是我的最后答案,因为这不是讨论区。请检查此stackoverflow.com/questions/9237715/…。并重新阅读我对stackoverflow.com/questions/18412129 / ...的回答,您将看到我正在更新npm而不是节点。
bohem.be 2015年

“不幸的是,常见的误解是该缩写词代表“节点包管理器”。
山姆·迈克斯,2015年

Answers:


154

您需要按照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


1
这是我数周以来一直面临的问题,现在已经解决了:)感谢您的回答!
sonlexqt

1
完成以上操作后,这里的关键部分是重新启动外壳程序,以便它从节点文件夹中安装的版本切换到AppData文件夹中安装的版本
Kyle Chadha 2015年

1
选项3的Reco ...复制/粘贴:cd / c /'Program Files / nodejs'&& npm install npm @ latest
benek

1
npm install npm @ latest效果很好,除了仍然小于2.0的客户端上
beauXjames 2015年

为什么不将-g标志与npm install npm@latest方法一起使用?它对我-g有用,但其余的都不起作用
Overdrivr

44

我们在Microsoft Open Source中编写了一个小工具来自动化上述过程。您可以在此处找到它,也可以通过在提升的命令提示符/ PowerShell中执行以下命令来安装并运行它:

npm install -g npm-windows-upgrade
npm-windows-upgrade

1
它需要PowerShell。如果我无法运行从Internet下载的Powershell脚本并且没有权限更改设置怎么办?我想我需要创建证书并签名。令我头疼的是
rofrol 2015年

1
我按照所有步骤操作,但得到的只是一个错误:PS C:\ Windows \ system32> npm-windows-upgrade npm-windows-upgrade:术语'npm-windows-upgrade'不被识别为cmdlet,函数,脚本文件或可操作程序。检查名称的拼写,或者是否包含路径,请验证路径是否正确,然后重试。在第1行:char:1 + npm-windows-upgrade + ~~~~~~~~~~~~~~~~~~ + CategoryInfo:ObjectNotFound:(npm-windows-upgrade:String)[], CommandNotFoundException + FullyQualifiedErrorId:CommandNotFoundException
Dan Csharpster,2013年

1
在将Powershell作为Admin的所有步骤之后,我遇到了与@DanCsharpster完全相同的问题。
韦斯利·穆斯格罗夫

2
更正:我有以下所有PowerShell中的步骤,管理员为@DanCsharpster完全相同的问题,但这个问题是固定的,加入C:\用户\ UserAdmin \应用程序数据\漫游\ NPM,是我路上,关闭PowerShell和重新打开它管理员。
Wesley Musgrove

与Dan和Wesley有同样的问题。能够通过上述韦斯利的技巧解决此问题。
Loathian

15

npm在Windows中可能有很多更新您的方法

方式1

  1. 以管理员身份打开电源外壳,然后逐步运行以下命令。
  2. Set-ExecutionPolicy Unrestricted -Scope CurrentUser -Force
  3. npm install -g npm-windows-upgrade
  4. npm-windows-upgrade
  5. 在这里您可以选择您首选的npm版本
  6. 准备好出发 !

方式二

  1. 您可以npm使用以下命令简单地升级到最新版本
  2. npm install npm@latest -g
  3. 或者如果您只想npm运行特定版本
  4. npm install npm@{version} -g 例如 npm install npm@3.3.12 -g

现在只需运行npm --versionnpm -v了解您当前的npm版本

3.3.12是我npm最适合每个包装的首选版本。


1
方法2是开箱即用的唯一方法:npm install npm@latest -g
Overdrivr

7

因此,TL; DR; 这工作:

  1. 卸载节点

  2. 在命令提示符下,运行 where npm

  3. 如果您是通过Chocolatey安装的npm,则将看到类似C:\ ProgramData \ chocolatey \ bin \ npm.exe的路径-删除它!
  4. 现在,使用来自https://nodejs.org/en/download/的适当的MSI安装NodeJS。
  5. 在您最喜欢的shell中,键入npm --version-现在,它应该回显NodeJS随附的NPM版本(在撰写本文时,该版本为3.10.10)。

这是对我有用的(愚蠢的我!),我(很早以前)通过Chocolatey安装了npm,这在C:\ ProgramData \ chocolatey \ bin \ npm.exe中创建了一个由Chocolatey启动的npm.exe。这是npm 1.4.9版,无论执行什么操作(包括卸载和重新安装NodeJ),都不会更新。

=======

编辑:安装节点和npm的更好方法

截至今天(2017年6月27日),安装和管理节点和npm的最佳方法是按照以下说明安装nvm(节点版本管理器):https : //github.com/coreybutler/nvm-windows。一旦有了nvm,安装任何节点版本都是非常容易的:

  1. 打开您喜欢的控制台(CMD,Cmder,PowerShell)
  2. 类型nvm install 6.10.2(以安装节点版本6.10.2)
  3. 要查看当前活动的版本,请键入nvm list。如下所示:

  6.9.3   
* 6.9.2 (Currently using 64-bit executable)
  6.9.1
  6.10.2


1
你救了我的一天!我有同样的问题。我已经使用Chocolatey安装了Node.js,但无法升级npm版本。
dsmyrnaios

1

您需要按照Windows升级说明进行操作

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

首先,通过从提升的PowerShell中运行以下命令,确保可以在系统上执行脚本。要以管理员身份运行PowerShell,请单击“开始”,搜索PowerShell,右键单击PowerShell,然后选择“以管理员身份运行”。

  1. Set-ExecutionPolicy不受限制-作用域CurrentUser-强制
  2. npm install --global --production npm-windows-upgrade
  3. npm-windows-升级

是否只想安装最新版本?1.npm-windows-upgrade --npm-version最新


0

我做了类似山姆·迈克斯的事。我之所以只分享这个内容,是因为我无法获得他的任何解决方案来在我的钻机上工作。经过一番游戏之后,这对我有用:

  1. 从用户和系统的环境变量中删除NPM /节点。
  2. 如果您打开了一个控制台,请关闭它,然后以管理员身份打开一个控制台。
  3. 将目录更改为%USERPROFILE%-这是窗口的环境变量,可让您转到C:\Users\CurrentlyLoggedInUser
  4. 从控制台在%USERPROFILE%中运行,"C:\Program Files\nodejs\npm" install npm -g(您可能在x86文件夹中)
  5. 如果该解决方案适合您,则第4步将奏效,npm -v并将显示最新版本
  6. 将节点(在程序文件中)/ NPM(在应用程序数据中-在程序文件中安装的节点应该是旧的)重新添加到用户和系统环境变量中

注意:过去,我使用Microsoft自动化脚本来解决此问题,但这只是因为我没有意识到自己完成该任务有多么容易。


哈哈!因此,我进行了升级,然后需要降级并再次遇到此问题...我最初为LTS 4.2.3编写了此答案,并且适用于LTS 4.4.0
kayleeFrye_onDeck

0

因此,以前的答案都没有为我解决问题,因此我认为我应该发布自己的特定解决方案,我通过仔细研究所有其他答案来弄清楚了它们,对他们确实很有帮助。

我的问题是因为我使用Chocolatey安装了节点,可能还安装了npm(现在查看Chocolatey网站,我不应该这样做)。

为了解决该问题,我只需要对npm和node运行相关的choco卸载命令,然后将所有内容切换到我也使用节点msi(来自节点的网站)安装的其他版本的节点。

我希望这对其他可能和我走过同样道路的人有所帮助。



0

我几乎尝试了所有答案,但没有一个能按照我的方式工作。
无论是NPM-Windows的升级工作也没有了故宫故宫安装最新的@等等等等工作。
对于像我这样的人,我建议您从Node.js网站下载最新的安装程序,让它保留现有版本的node目录,而无需更改任何内容,只需安装msi安装程序,您将获得node的升级版本。
我的情况是将节点从6升级到8.9.3


有很多升级方法。我曾经把我的整个工作日浪费在这上面。如果您遇到相同的问题,请选择我的解决方案。
hamzox18年

0

所有npm install命令都被卡住,并会在一段时间后引发错误(在代理错误之后)。设置代理没有帮助。这就是我所做的。

有8.11个nodeJS

  1. 使用卸载程序从“程序和功能”中卸载NodeJS。
  2. 重新启动(或者您可能可以通过从任务管理器中杀死所有与节点相关的进程来逃脱)。
  3. 查找这些文件夹,并删除它们(及其内容)(如果仍然存在)。根据您安装的版本,UAC设置和CPU体系结构,这些可能存在或可能不存在:•C:\ Program Files(x86)\ Nodejs•C:\ Program Files \ Nodejs•C:\ Users {User} \ AppData \ Roaming \ npm(或%appdata%\ npm)•C:\ Users {User} \ AppData \ Roaming \ npm-cache(或%appdata%\ npm-cache)•C:\ Users {User} .npmrc(和可能也检查不带。前缀的内容)
  4. 检查您的%PATH%环境变量,以确保不存在对Nodejs或npm的引用。
  5. 如果仍未卸载,请在命令提示符下键入where节点,然后您将看到它的驻留位置-也删除该节点(可能是父目录)。
  6. 重新启动,这是很好的措施。

安装了6.11 nodejs之后就可以了。


0

在Windows 10上升级NPM

  1. 卸载Node.js
  2. 重新启动系统
  3. 在命令提示符下键入npm
  4. 如果AppData / Roaming中存在npm和npm-cache文件夹,则删除
  5. 安装Node.js(https://nodejs.org/en/

-3

对于Windows上的更新节点npm

我必须在以下位置删除节点:

C:\ Users **您的用户** \ AppData \ Roaming

并重新安装节点

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.