npm install hängt


79

Das ist mein package.json:

{
"name": "my-example-app",
"version": "0.1.0",
"dependencies": {

  "request": "*",
  "nano": "3.3.x",
  "async": "~0.2"
  }
}

Wenn ich jetzt das cmd öffne und starte npm install, hängt die Installation. Was mache ich falsch?


6
Wo hängt es? Vor einer Ausgabe?
Ry-

1
Bitte posten Sie die Ausgabe, die Sie sehen, wenn Sie ausführen npm install.
Philipp Claßen

31
Versuchen Sie zu npm install --verbosesehen, ob Sie etwas finden können.
Dogbert

Nein, ich bekomme eine Ausgabe ...
user1090227

Ausgabe: npm WARN package.json my-example-app.1.0 Keine README> md-Datei gefunden!
user1090227

Antworten:


123

Ich hatte das gleiche Problem. Der Grund - falscher Proxy wurde konfiguriert und aus diesem Grund konnte npm keine Pakete herunterladen.

Ihre beste Wette ist es also, die Ausgabe von zu sehen

$ npm install --verbose

und identifizieren Sie das Problem. Wenn Sie den Proxy noch nie konfiguriert haben, können dies mögliche Ursachen sein

  • Sehr veraltete npm Version.
  • Ein Problem mit Ihrer Internetverbindung.
  • Für npm reichen die Berechtigungen zum Ändern von Dateien nicht aus.

9
npm config set loglevel infound dann npm iwieder laufen
gcb

npm ls --global --parseable --long --loglevel info
Ciasto Piekarz

Ich habe mehrere Iterationen erneut ausgeführt npm install --verboseund die Datei im letzten Protokollpfad gelöscht , der vor dem Auflegen angezeigt wurde. Schließlich kam die Installation zum Ende.
Zon

Das hat es für mich behoben. Ich habe das Webpack unter OS X installiert und es hing während des Installationsvorgangs. Ich gab ihm Zeit und tötete es schließlich. Ich lief npm install --versbose(nach Ihrem Rat) und wiederholte dann die Webpack-Installation. Alles ist gut!
Jamesnotjim

42

Ich hatte das gleiche Problem. Ich habe es versucht

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

https ausschalten. Ich habe es auch versucht

npm set progress=false 

um den Fortschrittsbalken auszuschalten (es wurde berichtet, dass Downloads verlangsamt werden).

Das Problem war mit meinem Netzwerktreiber. Ich musste nur neu starten und die Verzögerung verschwand.


4
+1 Ausschalten https funktionierte für mich, als mir --verbosegesagt wurde, dass mein npm http fetch 200 https://registry.npmjs.org/some-project/-/some-project-X.X.X.tgz
Fehler

2
Ich weiß nicht, ob es das https oder der Fortschrittsbalken war, aber das Ausschalten beider hat den Job gemacht! Danke!
M'sieur Toph '

5
Ist es wirklich eine gute Idee, Code über http herunterzuladen und dann auszuführen? Der Code wurde möglicherweise geändert.
Mark

Das Ausschalten von https hat alles für mich gelöst. Nach dem Upgrade des Knotens auf die neueste Version hing er zufällig bei Installationen. Jetzt funktioniert es großartig. Es ist bedauerlich, dass das Zurückschalten auf http das Problem gelöst hat, aber zumindest funktioniert es jetzt.
Michael Lea Crawford

19

Sie können versuchen, es zu löschen package-lock.jsonund npm installanschließend auszuführen . Das hat bei mir funktioniert.


Wo finde ich dieses Paket?
Felipe Martins Melo

1
Diese Datei befindet sich im Stammverzeichnis des Projekts. Dieselbe Ebene von package.json.
Franklin Hirata

7

Ich stehe hinter einem Unternehmens-Proxy, daher verwende ich normalerweise einen Zwischen-Proxy, um die NTLM-Authentifizierung zu aktivieren.

Ich hatte ein Problem mit der npm-Installation bei Verwendung des CNTLM-Proxys. Mit NTLM-APS (einem ähnlichen Proxy) waren die Hänge weg.


Danke, ich hatte das gleiche Problem und ging nirgendwo hin. Es ist das erste Mal, dass CNTLM bei mir nicht funktioniert hat!
Dcendents

Ich wechselte auch zu ntlm-aps und sah die Verbesserung für meine npm installund meteor npm installBefehle.
Aaron C


2

Wenn es für andere nützlich ist, hat Folgendes für mich funktioniert:

Obwohl der npm-Proxy auf meinem Computer richtig eingestellt war, npm installwartet er für immer darauf, etwas wie Sill-Extrakt zu tun . Ein npm installerneuter Versuch wartet immer wieder auf dasselbe Paket.

Nachdem Sie auf eine lange Zeitüberschreitung gewartet hatten, wurde npm installeine Fehlermeldung gedruckt, die besagt, dass git versucht hat, etwas abzurufen.

Das Problem verschwand nach der Konfiguration des Git- Proxys mit dem folgenden Befehl:

git config --global http.proxy https://proxy-server:port

Beachten Sie die httpsin den Wert von , http.proxyohne die die Konfiguration Wirkung nicht nehmen. Die Einstellungen des Proxyservers (http / https / port) können für Benutzer variieren. Daher lohnt es sich, ein wenig Zeit damit zu verbringen, mit den Einstellungen des npm- und git- Proxyservers zu experimentieren .


Leider gibt es Unmengen von Problemen, die dies verursachen können. Proxy-Einstellungen, die Sie nicht möchten, das npm-Projekt hat zu viele Releases oder andere Konnektivitätsprobleme. In meinem Fall habe ich eines dieser Probleme durch einen Neustart gelöst. Ich weiß, dass es eine dumme Lösung ist, aber wenn Sie an Ihren Haaren ziehen und dies noch nicht versucht haben, würde ich Ihnen vorschlagen, dies zu tun. Ich verwende Mac Os Mojave und dies ist nicht das erste Mal, dass ich Verbindungsprobleme habe, bei denen ich neu starten muss. Anscheinend etwas im Zusammenhang mit SSL.
HotFudgeSunday

1

Diese Methode funktioniert für mich, wenn npm im Installationspaket für die IONIC-Installation und in ReactNative sowie in einem anderen Paket npm blockiert.

Sie können vorübergehend ändern:

npm config set prefix C:\Users\[username]\AppData\Roaming\npm\node_modules2

  • Ändern Sie den Pfad in Umgebungsvariablen. Einstellen:

    C: \ Benutzer [Benutzername] \ AppData \ Roaming \ npm \ node_modules2

  • Führen Sie den Befehl aus, um Ihr Paket zu installieren.

  • Öffnen Sie den Datei-Explorer und kopieren Sie den Link:

    C: \ Benutzer [Benutzername] \ AppData \ Roaming \ npm \ Knotenmodule

    ok Datei yourpackage.CMD hat einen anderen Ordner erstellt Erstellt "node_modules2" in node_modules und enthält Ihren Paketordner.

  • Kopieren Sie die CMD Ihrer Paketdatei in den übergeordneten Ordner "npm" .

  • Kopieren Sie Ihren Paketordner in den übergeordneten Ordner "node_modules" .

  • Führen Sie jetzt aus:

    npm config set prefix C:\Users\[username]\AppData\Roaming\npm

  • Ändern Sie den Pfad in Umgebungsvariablen. Einstellen:

    C: \ Benutzer [Benutzername] \ AppData \ Roaming \ npm

Jetzt funktioniert das Paket korrekt mit der Befehlszeile.


1

Ich schalte einfach meine Windows-Firewall aus und es hat bei mir funktioniert. Sie können auch verschiedene Versionen von npm ausprobieren.


1

Wenn Ihr SSH-Schlüssel kennwortgeschützt ist, führen Sie ihn aus ssh-add. npm hängt wahrscheinlich irgendwo und fragt nach Ihrem Passwort.


1

Ich hatte das gleiche Problem unter macOS. Nach einiger Zeit des Kämpfens und Suchens löste diese Antwort das Problem für mich:

npm config rm proxy
npm config rm https-proxy
npm config set registry http://registry.npmjs.org/


0

Ich bin nicht sicher, ob Ihr Problem aus dem gleichen Grund wie meines verursacht wurde, aber auch ich hatte eine hängende "npm-Installation" und konnte es beheben.

In meinem Fall wollte ich Typoskript lokal im Projekt installieren:

npm i typescript --save-dev

Aus irgendeinem Grund stand dies im Widerspruch zu einer globalen Installation von Typoskript, die ich hatte, und die Shell hing nur für immer, anstatt fertig zu werden oder Fehler zu machen ...

Ich behebe es, indem ich zuerst das global installierte Typoskript mit dem globalen Flag -g entferne:

npm uninstall typescript -g

Danach funktionierte der erste Befehl! 👍


0

Überprüfen Sie Ihre Umgebungsvariablen auf http und https

Die vorhandenen Einträge können zu Problemen führen. Versuchen Sie, diese Einträge zu löschen.

Führen Sie "npm install" erneut aus.



0

Überprüfen Sie Ihre .npmrcDatei auf einen registryEintrag (der einen Server identifiziert, der als Paket-Cache fungiert.)

Für mich npm installwürde es auf halbem Weg hängen bleiben, und es lag an einem alten / nicht reagierenden Server, der in meiner .npmrcDatei aufgeführt ist. Entfernen Sie die Zeile oder kommentieren Sie sie aus:

>cat ~/.npmrc
#registry=http://oldserver:4873

(Und / oder erkundigen Sie sich bei Ihrem IT- / Projektleiter, warum es nicht funktioniert;)


0

Die Installation von nvm (Node Version Manager) und das Downgrade der Node-Version von 14 auf 12 lösten das Problem in meinem Fall


-32

* Versuchen Sie es sudo npm install.

* Wenn Sie github verwenden, haben Sie möglicherweise keine Berechtigung und müssen einen öffentlichen SSH-Schlüssel generieren und zu Ihrem Einstellungskonto hinzufügen: ( https://help.github.com/articles/generating-ssh- Schlüssel / )


3
Es empfiehlt sich, Sudo so weit wie möglich zu vermeiden, insbesondere bei projektspezifischen (nicht systemweiten) Aktionen.
Ilia Kondrashov

Stimmen Sie zu, aber auch eine gute Vorgehensweise, wenn Sie den LAMP-Stack verwenden, besteht darin, Ihre Web-App-Dateien im Verzeichnis / var / www zu haben. Wenn Sie diesen Ordnern keine Benutzerrechte erteilen, benötigen Sie sudo
Joaquin Diaz
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.