'npm install' ist unter Windows extrem langsam

83

Für mich ist das npm installextrem langsam. Ich verwende Windows 8.1 mit der neuesten npm-Version. Meine Verbindungsgeschwindigkeit liegt bei 100 Mbit / s.

Das Projekt, das ich zu installieren versuche, hat ungefähr 20 Pakete / Abhängigkeiten und es dauert ungefähr 30 Minuten, um alle Abhängigkeiten zu installieren ...

Hat jemand eine Ahnung?

Simon Knittel
quelle
2
Ich habe dieses Problem auch heute. Ziemlich frisch gebaute Windows 8.1-Box, ich habe heute node.js und npm installiert. Die npm-Installation läuft sehr langsam, wenn versucht wird, die Laube zu installieren. npm v2.7.4 nodejs v0.12.2
Stuntbeaver
@ Simon Knittel Hast du es gelöst?
Tomasz Waszczyk
@PantaRhei Ich weiß nicht, ob es die Lösung ist, aber es hat für mich einen Unterschied gemacht, ob ich die Module auf einem USB3-Laufwerk oder einer internen Festplatte installiere.
Simon Knittel
@ Simon Es kann Ihre Firewall sein, die die Verbindung blockiert. Andernfalls müssen Sie Nodejs und npm
Seif Tamallah
@Pnta können Sie versuchen, Nodejs und npm zu aktualisieren und Firewall zu deaktivieren
Seif Tamallah

Antworten:

34

Ich bin auf dasselbe Problem --verbosegestoßen , als ich , wie Peterh erwähnte, die Ursache des Problems zeigte: Ich stehe hinter einem Proxy, der seine eigenen Zertifikate für https-Verbindungen verwendet. Laut Benutzer "Mletter1" unter https://github.com/npm/npm/issues/8872 kann das Problem mithilfe von http:

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

Und voilà, es ist wieder schnell. Natürlich solltest du das nur tun, wenn du mit Klartext-npm-Infos über das Netz einverstanden bist ;-)

Christof Kälin
quelle
Ich bin gerade darauf gestoßen, als ich Windows WSL gegen einen VirtualBox Docker (Toolbox) verwendet habe. NPM langsam wie Schlamm, das Umleiten meiner WSL (Debian) zu http npmjs.org beschleunigte die Dinge erheblich.
deepelement
Um einen weiteren hilfreichen Link hinzuzufügen, scheint die Verwendung von WSL NPM auch von Windows Defender beeinflusst zu werden. gist.github.com/noelbundick/9c804a710eb76e1d6a234b14abf42a52
deepelement
4
Aber ist das nicht unsicher? Enthüllt Sie die MIM-Angriffe
GiriB
18

Haftungsausschluss. Sicherheitsbedenken: Hoffentlich wissen Sie, was Sie in Ihren Ordner node_modules herunterladen, oder?

Von Ewigkeit → bis 5 Sekunden baut :

  • Suchen Sie nach Windows Defender-Einstellungen
  • → Viren- und Bedrohungsschutz
  • → Einstellungen für Viren- und Bedrohungsschutz
  • → Ausschlüsse

Fügen Sie hier Ihre beiden Pfade zu Ihrer Liste der ausgeschlossenen Echtzeitschutzordner hinzu :

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

PS : Ersetzen Sie den <your username>durch Ihren jeweiligen Benutzerordnernamen .
Wenn Sie nicht wissen, warum Sie den AppData- Ordner im Explorer nicht finden können, aktivieren Sie die Ansichtsoptionen für ausgeblendete Ordner.

Roko C. Buljan
quelle
1
Es funktioniert gut für mich, sollte auch im Arbeitsbereich Ordner hinzufügen, wo Sie lokale node_modules Ordner für Projekte haben.
Xun Yang
@Chet lassen Sie mich wissen, wenn Sie es funktionieren lassen, was Sie getan haben
Roko C. Buljan
Ich ging in den Verteidiger und deaktivierte den gesamten Viren- und Bedrohungsschutz, den gesamten Netzwerk- und Firewall-Schutz sowie die Option "Apps und Dateien überprüfen". Ich habe auch einige npm-Einstellungen hinzugefügt, um den Fortschritt einzuschalten, und die Registrierungs-URL auf http anstelle von https gesetzt. Es ist jetzt ein bisschen schneller.
Chet
4
@Chet yap, Vireninfektionen sollten jetzt schneller gehen 🙈
Roko C. Buljan
1
Das ist der Plan! 🤞
Chet
11

Ich habe das gleiche Problem für eine Weile konfrontiert. Ich habe folgendes ausprobiert

npm i typescript live-server --save-dev

Die Installation würde für immer daran hängen bleiben. Das Hinzufügen des Flags -verbose funktionierte jedoch einwandfrei.

Nikhil Dev
quelle
2
Aber warum -verbosemacht das einen Unterschied?
Itamar Bitton
9

Ich weiß, dass dies nur eine Problemumgehung ist , aber versuchen Sie, die integrierte " Windows PowerShell " zu verwenden.

MartinDoes
quelle
Hat gut funktioniert! Vielen Dank.
FRNathan13
8
@MartinDoes Warum ist PowerShell schneller?
Witold Kaczurba
1
Gleiche exakte Leistung zwischen cmd.exeund PowerShell für mich.
Tom Granot
4

Es scheint, als ob npm nicht gut mit Internetverbindungen umgehen kann und manchmal in einer solchen Situation enden kann.

1) Ich rate Ihnen zu überprüfen, ob Ihre Firewall oder Ihr Virenschutzprogramm keinen Scan oder Filter ausführt, was die npm-Installation verlangsamen könnte.

2) Sie können auch das Caching von npm wie unten verwenden.

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

Dies ermöglicht npm-Download- und Cache-Abhängigkeiten in dem von Ihnen angegebenen Verzeichnis.

3) Eine andere Lösung zum Zwischenspeichern von Abhängigkeiten von npm-Paketen ist npm faul . Weitere Informationen hierzu finden Sie auf der npm Lazy-Website

Hinweis: Der Caching-Prozess kann die Download-Geschwindigkeit verbessern oder nicht, spart jedoch wahrscheinlich Zeit beim Herunterladen, wenn Sie Ihre npm-Pakete installieren oder aktualisieren.

Williem
quelle
3

Das Deaktivieren der Windows-Firewall und des Windows Defender-Echtzeitschutzes hat dies in Windows 10 für mich erledigt.

Mike
quelle
2

Für mich schien es ein Problem mit IPv6 zu sein.

Das Deaktivieren von IPv6 hat mir sehr geholfen.
Bei aktiviertem IPv6 dauerte es 1:45, bis "update-package newtonsoft.json" mit dem Fehler "update-package: Eine Aufgabe wurde abgebrochen" abgelaufen war.

Bei deaktiviertem IPv6 wurde "Update-Paket newtonsoft.json" in 10 Sekunden abgeschlossen

Benjamin Casha
quelle
Das Deaktivieren von IPv6 half mir bei einem ähnlichen Problem auf Fedora 23
malloc4k
1

Ich hatte das gleiche Problem beim Erstellen eines Projekts unter Verwendung von Angular Cli "ng new PROJECT_NAME". Dieser Befehl löst nach der Erstellung des Projekts "npm -install" aus. Die Installation dauerte zu lange und blieb bei "Installieren von Paketen für Werkzeuge über npm" hängen. Folgen Sie diesen, die für mich gearbeitet haben

1) Überprüfen Sie Ihre npm-Version "npm --version" (muss höher als 2.1.8 sein) Aktualisieren Sie Ihr npm-Paket mit "npm -g install --save latest-version"

2) Entfernen Sie den Fortschrittsbalken, der mehr Zeit in Anspruch nimmt. "Npm set progress = false"

Überprüfen Sie diese Probleme, wenn Ihr Problem immer noch nicht behoben wird. https://github.com/nodejs/node/issues/4150 https://github.com/npm/npm/issues/11283

Hoffentlich sortiert dies das Problem Prost!

Wegbereiter
quelle
1

Das Ausschalten der Windows Defender-Firewall hat mir geholfen.

Da es sich einfach nicht richtig anfühlt, habe ich zuerst das WIFI zu einem privaten Netzwerk hinzugefügt (über die WIFI-Einstellungen) und den Windows Defender nur für ein privates Netzwerk anstelle aller öffentlichen Netzwerke deaktiviert.

Der nächste Schritt sollte sein: Welcher Netzwerkverkehr verursacht dies und wie fügt man dies der Windows Defender-Ausnahmeregel hinzu :)

10Champ
quelle
0

Ich habe alle Konfigurationen (Proxy, Registrierung usw.) ausprobiert, nichts hat bei mir funktioniert, also habe ich den Knoten & npm vollständig deinstalliert und installiert. Was zur Lösung des Problems beigetragen hat.

Prasanth Jaya
quelle
0

Das vollständige Ausschalten des Viren- und Firewall-Schutzes ist nicht die sicherste Option. Es macht die Dinge zwar schneller, macht Sie aber anfälliger.

In meinem Fall habe ich den Prozess node.exe nur im Viren- und Bedrohungsschutz ausgeschlossen.

  • Geben Sie in Ihrem Startmenü "Windows-Sicherheit" ein und öffnen Sie die App.
  • Klicken Sie auf "Viren- und Bedrohungsschutz".
  • Einstellungen für Viren- und Bedrohungsschutz => Einstellungen verwalten
  • Ausschlüsse => Ausschlüsse hinzufügen oder entfernen
  • Fügen Sie einen Ausschluss hinzu => process => type node.exe => klicken Sie auf Add

Nur eine einfache Create-React-App wurde von 2m40s auf 1m10s heruntergefahren. npm-Befehle werden auch von node.exe ausgeführt, sodass dort die gleichen Verbesserungen festgestellt werden.

birgert
quelle
0

Stellen Sie sicher, dass Sie wirklich eine aktuelle Version von npm verwenden. In meinem Fall C:\Program Files\nodejs\npm.cmdwar eine alte mit npm-cli.jsunter dem prefixStandardordner %appdata%\npmanstatt eine neuere npm-cli.jsunten C:\Program Files\nodejs.

Setzen Sie die Umgebungsvariable, npm_config_prefix um C:\Program Files\nodejsdas zu lösen. (Bevor ich diese Lösung gefunden habe, habe ich versucht, das --prefix Argument zu verwenden, und herausgefunden, wie schwierig es ist, " nicht globale Befehle im angegebenen Ordner auszuführen " .)

Ich fand eine enorme Leistungssteigerung von 3.10.9 auf 6.13.4 - genug, um die npm installZeiten trotz Störungen durch Antivirenprogramme akzeptabel zu machen .

Wehr
quelle
0

Ich bin gerade durch ein Kaninchenloch gegangen, um das Problem zu identifizieren. Wenn die npm-Installation immer wieder zu Engpässen führt, sollten Sie die Eigenschaften Ihres virtuellen Ethernet stark ändern und alle Offload- Elemente deaktivieren .

Ich hatte 0 Proxys oder Caching-Probleme mit npm.

Im Tutorial erfahren Sie, wie Sie zum Menü gelangen und Ihre Offload-Einstellungen deaktivieren. Stellen Sie sicher, dass Sie dies sowohl für Ihr Ethernet als auch für Ihr Ethernet tun, und Sie sollten sofort einen Unterschied feststellen. Ich ging von einer 10-minütigen hängenden Auflösung über, die manchmal nur auf 10 Sekunden heruntergefahren wurde. https://www.dincloud.com/blog/tuning-windows-get-15x-speeds-on-large-file-copies-today

fengelhardt
quelle