在Windows 10上,npm非常缓慢

10
这个问题基本上是这个的重复,只是那个问题的接受答案是:“它实际上并不慢,你只是没有正确运行计时命令。”
在我的情况下,它实际上更慢! :)
我在Windows 10上。这是PowerShell的Measure-Command输出(TotalMilliseconds行表示挂钟时间):
PS> Measure-Command {npm --version}

Days              : 0
Hours             : 0
Minutes           : 0
Seconds           : 1
Milliseconds      : 481
Ticks             : 14815261
TotalDays         : 1.71472928240741E-05
TotalHours        : 0.000411535027777778
TotalMinutes      : 0.0246921016666667
TotalSeconds      : 1.4815261
TotalMilliseconds : 1481.5261

以下是一些对比数据:

  • '{.\node_modules.bin\mocha}': 1300毫秒
  • 'npm run test'(只运行mocha):3300毫秒
  • npm help:1900毫秒。
  • Node解释器本身很快:node -e 0:180毫秒

不仅是npm慢,mocha报告我的测试只需42毫秒,但正如你在上面看到的那样,它需要1300毫秒才能运行这42毫秒的测试!


只是一次尝试...尝试以管理员身份运行shell,也许考虑使用git bash(mingw64)并在其中运行npm。 - Dmitry Matveev
在 Powershell 管理员控制台下运行 NPM 仍然很慢。在 cygwin bash 下运行 Windows 原生的 node/npm 仍然很慢。在 WSL 下运行 Linux 的 node/npm 更快(但仅运行 --version 就需要 370ms。在原生的 Linux 上应该有多快?),但是在 Windows 文件系统上运行 WSL npm 会出现错误。 - Josh
我还没有尝试运行Cygwin的node/npm,但我尽可能地想避免使用WSL和Cygwin - 我正在使用Windows IDE,我的linters等所有工具都必须与Windows端集成... - Josh
在我的情况下,即使是 npm -v 命令也需要很长时间。 - pmoubed
4个回答

1

我也遇到过同样的问题。你有Symantec终端保护吗?尝试在“更改设置”>“客户端管理”>“常规”>“启用应用程序和设备控制”中禁用应用程序和设备控制。

(你也可以完全禁用SEP;对我而言,命令是:"%ProgramFiles(x86)%\Symantec\Symantec Endpoint Protection\smc.exe" -stop 。)

如果你有其他杀毒软件,可能也有禁用它的方法。请注意,关闭通知区域中的应用程序可能无法停止病毒防护。问题很可能出在任何一种实时保护上,这些保护会在进程启动时扫描。由于node和git经常调用短暂运行的进程,因此这种延迟更加明显。
在PowerShell中,我喜欢测量git status的性能,在进行更改之前和之后: Measure-Command { git status }


0

我很久以前遇到过这个问题,我认为那是一个我使用的扩展。我使用的是Visual Studio Code,在没有任何扩展和运行bash时:

//GIT Bash Configuration
"terminal.integrated.shell.windows": "C:\\Program Files\\Git\\bin\\bash.exe",

它确实可以飞行,我同时使用两个操作系统,所以我能够区分差异。尝试使用不同的工具并禁用一些功能。

如果仍然无法解决问题,请检查您的杀毒软件,也许它正在减缓进程?


0

整天在谷歌上搜索,但没有找到答案。决定卸载Java看看会发生什么,结果问题解决了。我知道这是一个旧帖子,但我发现自己一次又一次地回来查看是否错过了什么。

离题: 现在必须弄清楚如何让Java工作 以后会使用Measure-Command,之前不知道它存在!


0

我曾经遇到过这个问题。当我在家里尝试运行我的工作应用程序时,我发现在我的工作笔记本电脑上,该应用程序启动需要2分钟,但在我的个人笔记本电脑上需要5分钟或更长时间。

尝试了一些可能的解决方案后,最终我发现问题是我在D驱动器分区中安装了Git Bash,而那是一个HDD。当我重新安装在C驱动器中,即SSD,然后应用程序启动得更快。但是,我还将Node.js移动到了C驱动器中以防止其他问题。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接