【问题标题】:'npm install' extremely slow on Windows'npm install' 在 Windows 上非常慢
【发布时间】:2015-06-06 08:39:44
【问题描述】:

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

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

有人知道吗?

【问题讨论】:

  • 我今天也遇到了这个问题。相当新鲜的windows 8.1盒子,我今天安装了node.js和npm。尝试安装 bower 时,npm install 运行速度非常慢。 npm v2.7.4 nodejs v0.12.2
  • @Simon Knittel 你解决了吗?
  • @PantaRhei 我不知道这是否是解决方案,但无论我将模块安装在 USB3 驱动器还是内部硬盘上,这对我都有影响。
  • @simon 它可能是你的防火墙阻止连接,否则会让你更新 Nodejs 和 npm
  • @Pnta 你可以尝试更新 Nodejs 和 npm 并禁用防火墙

标签: node.js windows npm build


【解决方案1】:

我遇到了同样的问题,使用 --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 大大加快了速度。
  • 添加另一个有用的链接,看起来 WSL NPM 的使用也受到 Windows Defender 的影响。 gist.github.com/noelbundick/9c804a710eb76e1d6a234b14abf42a52
  • 但这不是不安全吗?向您展示 MIM 攻击
  • 很好的答案!不过现在需要使用https:npm config set registry https://registry.npmjs.org/ --global
【解决方案2】:

关于安全的警告:如果您不使用任何其他防病毒保护手段,这是一种不安全的方法。

从永恒 → 到 5 秒构建

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

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

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

PS:将 &lt;your username&gt; 替换为您各自的 User 文件夹名称。
如果您不知道为什么在资源管理器中找不到 AppData 文件夹,请务必检查隐藏文件夹的查看选项。

【讨论】:

  • 它对我很有用,还应该添加到工作区文件夹中,在那里你有项目的本地 node_modules 文件夹。
  • @Chet 让我知道当你让它工作你做了什么
  • @Chet yap,病毒感染现在应该更快了?
  • 计划就是这样! ?
  • 只需在资源管理器中输入 %appdata% 即可。将带您到漫游文件夹
【解决方案3】:

我知道这只是一个解决方法,但请尝试使用内置“Windows PowerShell

【讨论】:

  • 工作正常!谢谢。
  • @MartinDoes 为什么 PowerShell 更快?
  • cmd.exe 和 PowerShell 对我来说性能完全相同。
  • 但是,为什么,我们能知道为什么。
【解决方案4】:

我遇到同样的问题已经有一段时间了。我正在尝试以下方法

npm i typescript live-server --save-dev

安装会永远卡在它上面。但是添加 -verbose 标志效果很好。

【讨论】:

  • 但是为什么-verbose 会有所作为呢?
【解决方案5】:

npm 似乎不能很好地处理互联网连接,有时会在这种情况下结束。

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

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

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

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

3) 另一种缓存 npm 包依赖项的解决方案是 npm lazy,您可以在 npm Lazy website

找到更多信息

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

【讨论】:

    【解决方案6】:

    我在 Windows 10 中关闭了 Windows 防火墙和 Windows Defender 实时保护。

    【讨论】:

    • 这将禁用整个计算机的基本保护。 Roko's answer 减少仅对节点文件夹的曝光。
    【解决方案7】:

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

    禁用 IPv6 对我帮助很大。
    启用 IPv6 后,“update-package newtonsoft.json”需要 1:45 才超时,并出现错误“update-package : A task was cancelled”。

    禁用 IPv6 后,“update-package newtonsoft.json”在 10 秒内完成

    【讨论】:

    • 禁用 IPv6 帮助我解决了 Fedora 23 上的类似问题
    【解决方案8】:

    我在使用 Angular 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

    希望这能解决问题干杯!

    【讨论】:

      【解决方案9】:

      就我而言,这是由于 200 多个漏洞造成的。我跑的时候

      npm audit fix
      

      只解决了其中的几个问题。最终,我不得不跑

      npm audit fix --force
      

      而且比以前好多了。

      【讨论】:

        【解决方案10】:

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

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

        下一步应该是:是什么网络流量导致了这种情况以及如何将其添加到 Windows Defender 异常规则中:)

        【讨论】:

          【解决方案11】:

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

          【讨论】:

            【解决方案12】:

            完全关闭病毒和防火墙保护并不是最安全的选择。虽然它使事情变得更快,但它让你更容易受到攻击。

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

            • 在开始菜单中,输入“windows security”并打开应用。
            • 点击“病毒和威胁防护”
            • 病毒和威胁防护设置 => 管理设置
            • 排除 => 添加或删除排除
            • 添加排除 => 进程 => 键入 node.exe => 点击添加

            只是一个简单的 create-react-app 从 2 分 40 秒缩短到 1 分 10 秒 npm 命令也由 node.exe 执行,因此注意到了同样的改进。

            【讨论】:

              【解决方案13】:

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

              environment variable npm_config_prefix 设置为C:\Program Files\nodejs 解决了这个问题。 (在找到该解决方案之前,我尝试使用 --prefix argument 并发现这样做很困难forces non-global commands to run in the specified folder。)

              我发现从 3.10.9 到 6.13.4 的性能大幅提升 - 足以使 npm install 倍可接受,尽管有防病毒软件的干扰。

              【讨论】:

                【解决方案14】:

                我刚刚经历了一个兔子洞,试图找出问题所在。如果 npm install 不断遇到瓶颈,您应该认真考虑修改虚拟以太网的属性并禁用所有 offload 项。

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

                有关如何进入菜单并禁用卸载设置的教程,请参见此处。确保你对你的以太网和 VEthernet 都这样做,你应该立即注意到不同之处。我从有时会停止的 10 分钟悬挂解决方案变为 10 秒安装。 https://www.dincloud.com/blog/tuning-windows-get-15x-speeds-on-large-file-copies-today

                【讨论】:

                  【解决方案15】:

                  除了所有其他出色的 cmets,我还建议切换到 yarn (https://marketplace.visualstudio.com/items?itemName=geeklearningio.gl-vsts-tasks-yarn)。 使用 devops(自托管代理 v.2.192.0)和节点(v.14.17.6),我们能够将总构建(安装 + 构建)从 ~10 分钟减少到 ~6-7 分钟。

                  【讨论】:

                    猜你喜欢
                    • 1970-01-01
                    • 1970-01-01
                    • 2021-10-29
                    • 1970-01-01
                    • 2010-12-17
                    • 2018-06-29
                    • 1970-01-01
                    • 2015-11-19
                    • 2011-03-09
                    相关资源
                    最近更新 更多