在Windows上'npm install'非常慢


81

对我来说npm install非常慢。我正在使用Windows 8.1和最新的npm版本。我的连接速度约为100Mbit / s。

我要安装的项目大约有20个程序包/依赖项,安装所有依赖项大约需要30分钟...

有人有线索吗?


2
我今天也有这个问题。合理新建的Windows 8.1框,我今天安装了node.js和npm。尝试安装Bower时,npm install运行速度非常慢。npm v2.7.4 nodejs v0.12.2
Stuntbeaver 2015年

@Simon Knittel您解决了吗?
Tomasz Waszczyk,2015年

@PantaRhei我不知道这是否是解决方案,但是无论是将模块安装在USB3驱动器上还是内置HDD上,这对我来说都是不同的。
Simon Knittel

@simon可能是防火墙阻止了连接,否则会使您更新Nodejs和npm
Seif Tamallah 2015年

@Pnta,您可以尝试更新Nodejs和npm并禁用防火墙
Seif Tamallah 2015年

Answers:


33

我遇到了同样的问题,--verbose正如peterh所提到的,使用它向我展示了问题的根源:我在代理后面,该代理使用自己的证书进行https连接。根据https://github.com/npm/npm/issues/8872上的“ Mletter1”用户的说法,使用http很容易解决此问题:

npm config set registry http://registry.npmjs.org/ --global

瞧,又快了。当然,如果您可以通过网络使用明文的npm信息,则只应这样做;-)


在针对VirtualBox Docker(工具箱)使用Windows WSL时就遇到了这种情况。NPM速度变慢,将我的WSL(debian)重定向到http npmjs.org大大加快了速度。
deepelement '19

要添加另一个有用的链接,Windows Defender似乎也会影响WSL NPM的使用。gist.github.com/noelbundick/9c804a710eb76e1d6a234b14abf42a52
深度元素

4
但这不安全吗?向您展示MIM攻击
-GiriB

17

免责声明 有关安全性的问题:希望您知道下载到node_modules文件夹的内容,对吗?)

从永恒→到5秒建立

  • 搜索Windows Defender设置
  • →病毒和威胁防护
  • →病毒和威胁防护设置
  • →排除事项

此处将这两个路径添加到排除的实时保护文件夹列表中:

C:\Program Files\nodejs
C:\Users\<your username>\AppData\Roaming\npm

PS<your username>用您各自的用户文件夹名称替换。
如果您正在漫游为什么无法在资源管理器中找到AppData文件夹,请确保选中“查看”选项以查看隐藏的文件夹。


1
它对我来说很有用,还应该添加到工作区文件夹中,在该文件夹中有用于项目的本地node_modules文件夹。
杨勋

@Chet让我知道,当你把它的工作,你做了什么
ROKO C. Buljan

我进入防御者,关闭了所有病毒和威胁防护,所有网络和防火墙保护,并关闭了“检查应用程序和文件”。我还打开添加了一些npm设置以加快进度,并将注册表URL设置为http而不是https。现在快一点了。
切特

4
@Chet yap,病毒感染现在应该更快了
Roko C. Buljan

1
那是计划!🤞
切特

11

我已经面对相同的问题一段时间了。我正在尝试以下

npm i typescript live-server --save-dev

安装将永远陷入困境。但是,添加-verbose标志就可以了。


2
但是为什么-verbose有所作为?
Itamar Bitton


4

看起来npm不能很好地处理Internet连接,有时可能会在这种情况下结束。

1)我建议您检查防火墙或防病毒软件是否未执行任何扫描或过滤操作,这可能会减慢npm的安装速度。

2)您也可以从npm使用缓存,如下所示。

npm install package-name --cache "c:\path\to\use\as\dependencies\cache"

这将允许npm在您指定的目录中下载和缓存依赖项。

3)另一种用于缓存npm软件包依赖项的解决方案是npm lazy,您可以在npm Lazy网站上找到有关此信息的更多信息

注意:缓存过程可能会或可能不会提高下载速度,但是在安装或更新npm软件包时可能会节省下载时间。


3

在Windows 10中,关闭Windows防火墙和Windows Defender实时保护确实为我做到了。


2

对我来说,这似乎是IPv6的问题。

禁用IPv6对我有很大帮助。
启用IPv6后,“ update-package newtonsoft.json”花费了1:45超时,并显示错误“ update-package:任务已取消”。

禁用IPv6后,“更新包newtonsoft.json”将在10秒内完成


禁用IPv6帮我类似的问题在Fedora 23
malloc4k

1

我在使用角度cli“ ng new PROJECT_NAME”创建项目时遇到了相同的问题,此命令在创建项目后触发了“ npm -install”,这花费了很长时间安装,并陷入了“通过npm安装工具包”的困境。遵循对我有用的这些

1)检查您的npm版本“ npm --version”(必须高于2.1.8)。通过“ npm -g install --save Latest-version”更新您的npm软件包。

2)删除进度条,它消耗更多时间“ npm set progress = false”

如果仍然无法解决问题,检查此问题 https://github.com/nodejs/node/issues/4150 https://github.com/npm/npm/issues/11283

希望这可以为问题加油!


1

关闭Windows Defender防火墙对我有帮助。

因为感觉不对,所以我首先将WIFI添加到专用网络(通过WIFI设置),然后仅关闭Windows Defender专用网络,而不是所有公共网络。

下一步应该是:哪些网络流量导致此问题,以及如何将其添加到Windows Defender异常规则中:)


0

我尝试了所有配置(代理,注册表等),但对我来说没有任何帮助,所以完全卸载并安装了node&npm。这有助于解决问题。


0

完全关闭病毒和防火墙保护不是最安全的选择。虽然它使事情变得更快,但使您更加脆弱。

就我而言,我仅排除了病毒和威胁防护中的node.exe进程。

  • 在开始菜单中,键入“ Windows安全性”,然后打开应用程序。
  • 点击“病毒和威胁防护”
  • 病毒和威胁防护设置=>管理设置
  • 排除=>添加或删除排除
  • 添加一个排除项=>处理=>输入node.exe =>单击添加

只是一个简单的create-react-app从2m40s下降到1m10s,npm命令也由node.exe执行,因此在那里也发现了相同的改进。


0

确保您确实使用的是npm的最新版本。就我而言C:\Program Files\nodejs\npm.cmd,是npm-cli.js在默认prefix文件夹下使用旧文件,%appdata%\npm而不是在npm-cli.js下面使用新文件C:\Program Files\nodejs

设置环境变量 npm_config_prefix可以C:\Program Files\nodejs解决该问题。(在找到该解决方案之前,我尝试使用该--prefix 参数,并发现这样做的困难方式强制非全局命令在指定的文件夹中运行。)

我发现从3.10.9到6.13.4的性能有了巨大的提高,npm install尽管受到防病毒软件的干扰,但足以使时间可以接受。


0

我刚刚经历了一个兔子洞,试图找出问题所在。如果npm install一直成为瓶颈,则应认真考虑修改虚拟以太网的属性并禁用所有卸载项。

我有0个代理或npm的缓存问题。

有关如何进入菜单和禁用卸载设置的教程,请参见此处。确保对您的以太网和VEthernet都执行此操作,并且您应该立即注意到差异。我从10分钟的挂起分辨率(有时只是停止下来)降低到10秒安装。 https://www.dincloud.com/blog/tuning-windows-get-15x-speeds-on-large-file-copies-today

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.