wake-up-neo.net

npm bleibt auf fetchMetadata -> network hängen

Meine npm bleibt viel hängen, egal ob sie von package.json oder einzelnen Paketen installiert wird.

Im Moment kann ich nicht einmal Sudo npm install node-inspector -g

Ich verwende node 6.2.1, npm 3.9.5 für ubuntu 16.04

npm cache clear hat nicht geholfen . Die Installation dauert Stunden oder schlägt fehl.

47
Dushyant Bangal

Prüfen Sie, ob Probleme mit Proxies bestehen, wenn Sie solche verwenden. Sie können auch versuchen, den Endpunkt von npm manuell festzulegen:

npm config set registry="http://registry.npmjs.org"
50

probiere garne installer statt npm:

Sudo npm install -g yarn
yarn install

Ich fand es für solche Probleme viel widerstandsfähiger.

17
Tomer Ben David

Ich hatte das gleiche Problem mit mehreren verschiedenen Installationen, die an fetchMetaData hängen, einschließlich der oben erwähnten Installation von yarn. Ich bin auf einer Mac und habe es gelöst, indem ich npm wie folgt aktualisiert habe:

npm install [email protected] -g

Wenn dieses Problem in Mac auftritt, versuchen Sie es zu aktualisieren und sehen Sie, ob es Ihr Problem löst.

7
BruceHill

Für mich waren es doppelte temporäre Verzeichnisse in Windows.

Öffnen Sie eine Eingabeaufforderung und geben Sie Folgendes ein:

echo %TEMP%

Sie sollten den Pfad zu einem einzelnen Verzeichnis erhalten. Wenn Sie mehrere Verzeichnisse erhalten (ich habe C:\Users \\ AppData\Local\Temp; C:\xampp\php erhalten), könnte dies das Problem sein. Sie können es mit diesem Befehl beheben:

SET TEMP="<correct path to temporary directory>"

dabei könnte <correct path to temporary directory> der erste Pfad sein (vor Semikolon bedeutet dies in meinem Fall C:\Users\<user>\AppData\Local\Temp).

3
Ogglas

Ich habe das gleiche Problem. Versuchen Sie zunächst, npm install mit dem Flag -verbose auszuführen. Das kann Ihnen helfen, Ihr Problem zu identifizieren. 

Dieser Befehl sagte mir, dass ich Probleme mit der Tunnelsteckdose hatte:

tunnelsockel konnte nicht eingerichtet werden, Ursache = Schreiben EPROTO 101057795: Fehler: 140770FC: SSL-Routinen: SSL 23_GET_SERVER_HELLO: unbekanntes Protokoll: openssl\ssl\s23_clnt.c: 794:

Danach googelte ich den Fehler und fand Thread auf github über dieses Problem. Das Problem bestand im Proxy: Vorher habe ich die Umgebungsvariable HTTP_PROXY eingerichtet und nach dem Entfernen die Umgebungsvariable npm install ohne Fehler beendet.

2
feeeper

Nach ungefähr 3 Stunden, in denen wir unser Problem nachvollzogen haben, mussten wir lediglich Folgendes ausführen:

npm config rm proxy
npm config rm https-proxy
1
danjones_mcr

Haben Sie ein proxy konfiguriert? Sehen Sie, ob dies etwas zurückgibt:

> npm config get https-proxy
> npm config get proxy

Wenn Sie dort Werte konfiguriert haben, stimmen diese möglicherweise nicht mit den richtigen überein. Wenn Sie keinen Proxy verwenden sollten, können Sie diese löschen:

> npm config delete https-proxy
> npm config delete proxy

Dokumente: https://docs.npmjs.com/cli/config

1
Paul Melero

Es gibt viele verschiedene Dinge, die dieses Problem verursachen können.

Ich hatte viele Dinge ausprobiert, einschließlich der meisten hier veröffentlichten Antworten, aber kein Glück.

Aus irgendeinem seltsamen Grund war dies das Problem meines ISP. Es hat gut funktioniert, als ich einen anderen ISP anprobierte.

1
Dushyant Bangal

Für den Großteil der Leute könnte das Problem mit Proxy-Einstellungen zusammenhängen und durch die oben genannten Lösungen gelöst werden.

Für mich war das Thema etwas anderes. Ich habe private Repository-Abhängigkeiten, die bei Bitbucket gehostet werden und durch "git + ssh: //[email protected]/" aufgelöst werden. Dieser Intern verwendet SSH, um das Repo abzurufen.

Standardmäßig bevorzugt SSH IPv6, wenn DNS einen AAAA-Datensatz abruft und der Host einen solchen Eintrag hat. Da Bitbucket über einen AAAA-Datensatz verfügt, wird SSH über IPv6 ausgeführt. Mein ISP unterstützt jedoch kein IPv6 (Sie können den IPv6-Wert Ihres ISP prüfen, indem Sie einen Test in http://ipv6-test.com/ durchführen).

Um dieses Problem zu lösen, können Sie den SSH-Client zwingen, IPv4 anstelle von IPv6 zu verwenden.

Setzen Sie AddressFamily inet in /etc/ssh/ssh_config und starten Sie den SSH-Client erneut.

Neustart des SSH-Clients unter Ubuntu Sudo service ssh restart

0
giridhar

Das gleiche problem haben Behebung des Problems durch Umschalten auf die korrekte Version des Knotens, die für das Projekt erforderlich ist.

Mein Projekt benötigte Knoten >=v4.3 and <=v5.

1) Überprüfen Sie die von nvm ls verwendete Knotenversion.

2) Verwenden Sie nvm use [version] oder installieren Sie die spezifische Version. wenn du nicht hast.

0