it-swarm.com.de

Wie löse ich den NPM-Fehler "418 Ich bin eine Teekanne", wenn Sie versuchen, npm install zu verwenden?

Ich habe versucht, Yeoman und Gulp auf einem Server zu installieren, der über einen Unternehmens-Proxy verfügt, und zwar mit folgendem Befehl:

npm install -g yo gulp

Wenn ich jedoch diesen Befehl (oder einen beliebigen "npm install" -Befehl) ausführe, bekomme ich ein Problem mit:

npm ERR!       E418
npm ERR! 418 I'm a teapot: [email protected]

Ich bin ziemlich zuversichtlich, dass dies ein Problem im Zusammenhang mit dem Proxy ist, aber ich kann nicht herausfinden, was genau es verursacht.

Einige Tests habe ich gemacht:

  • Ich habe den Proxy zu meiner npmrc-Datei mit Anmeldeinformationen für die Authentifizierung hinzugefügt und glaube, dass er richtig eingegeben wurde. Wenn ich einen Teil des Benutzernamens oder des Kennworts ändere, ändert sich mein Fehler in ein E407 (Authentifizierung fehlgeschlagen).

  • Ich lief "npm config set strict-ssl false" und das schien nichts zu tun.

  • Ich habe versucht, verschiedene Installationen auszuführen und bekomme immer noch "418 Ich bin eine Teekanne package @ latest".

4
forev3r

Nach einigen weiteren Stunden des Suchens in Foren und Blogs bestand die Lösung darin, meine Registrierung von " http://registry.npmjs.org/ " in " https://registry.npmjs.org/ zu ändern. ".

Offensichtlich wird die Registrierung bei einigen Proxys zur Adresse umgeleitet, fügt jedoch Port 443 zur Adresse hinzu, wenn versucht wird, eine Verbindung ohne https herzustellen.

Hoffe, das hilft allen anderen, die dieses Problem haben!

17
forev3r

Ich habe diesen Fehler auch in meinem Projekt erhalten und der Hauptgrund ist die Änderung unserer Proxy-Einstellungen. Ich möchte also vorschlagen, Ihre Proxy-Einstellungen zu überprüfen ... einige Befehle, mit denen ich diesen Fehler behoben habe ...

npm set strict-ssl false 
npm config set registry https://registry.npmjs.org/

check = https://registry.npmjs.org/

8
Sonali more

Vielen Dank für die Beantwortung meiner npm, die nicht Err 418 zeigt. Ich bin wieder eine Teekanne

Sie müssen die npm config folgendermaßen aktualisieren:

npm set strict-ssl false 
npm config set registry https://registry.npmjs.org/

Versuchen Sie erneut, das Paket mit npm.. zu installieren.

3

Das Npm-Team schickte diese Aussage zum Thema: "Zu Spitzenzeiten waren die 418 Antworten 0,01% des Verkehrsaufkommens. Npm hat sehr viele Benutzer (über 10 Millionen), so dass der Verkehr während der Zeit des Vorfalls bei 500 bis 1000 liegt Betroffene Benutzer sind natürlich betroffen: Selbst ein einzelner Benutzer, der von einem Fehler betroffen wurde, ist mehr als wir möchten, aber im Vergleich zu unserem Umfang war dies kein großes Problem Hinter den Proxies waren die meisten Leute nicht betroffen. Sobald wir auf den Fehler in unserer Header-Analyse aufmerksam gemacht wurden, hat das OP-Team das Update schnell implementiert. "

Sicher sind die Leute hinter dem Stellvertreter betroffen, da ich vor demselben Problem stand. Die Lösung hier ist also

Prüfen Sie, ob der Proxy-npm-Proxy abgerufen wird, und der Befehl npm (https-proxy ). Wenn beide auf "none" gesetzt sind, setzen Sie ihn bitte auf "-".

npm set proxy http: // proxyAddr: 8000 npm set https-proxy https: // proxyAddr: 8000

dann nochmal versuchen.

Wenn das Problem weiterhin besteht, überprüfen Sie die Registrierung auf npm-

npm bekomme die Registry if http://registry.npmjs.org/ dann

Ändern Sie es in npm config set registry https://registry.npmjs.org/ (Dies sollte das Problem beheben, für mich hat es funktioniert).

0
rajdeepbs29

Wenn Sie sich hinter einer Unternehmensfirewall befinden, erhalten Sie dieses Problem. Um dieses Problem zu beheben, habe ich die folgenden Schritte ausgeführt: 

npm set strict-ssl false npm config set register https://registry.npmjs.org/

Wenn Sie sich hinter einem Unternehmens-Proxy befinden, können Sie auch den folgenden Befehl verwenden: Npm config set https-proxy http: // IP: PORT/

Oder gehen Sie direkt zu Ihrer .npmrc-Datei und zeigen Sie auf https statt auf http.

0
shiv

Nachdem ich viele Websites besucht und alles getestet hatte, was ich gefunden hatte, funktionierte diese Lösung endlich für mich. Wenn Sie Windows verwenden,

  1. Klicken Sie auf die Windows-Schaltfläche und geben Sie "run" ein
  2. Art .npmrc und öffnen Sie diese Datei mit Ihrem bevorzugten Editor.
  3. Ersetzen Sie registry = http://registry.npmjs.org/ durch registry = https://registry.npmjs.org/ und speichern Sie.

Hinweis: Wenn Sie auch Proxy-Probleme haben, können Sie Ihren Proxy wie unten in derselben Datei einstellen. In meinem Fall habe ich ein spezielles Symbol "@" in meinem Passwort. Als ich versuchte, den Proxy mit dem Befehl npm config set proxy zu ändern, wurden diese Sonderzeichen in etwas anderes konvertiert Proxy zusammen in dieser Datei direkt.

Dein letztes .npmrc sollte wie folgt aussehen. Sie können Proxy-Leitungen entfernen, wenn Sie keine Probleme mit dem Proxy haben. Vergessen Sie nicht, den Port im folgenden Beispiel durch Ihren Proxy-Port zu ersetzen.

registry=https://registry.npmjs.org/  
proxy=http://username:[email protected]:8080/  
https-proxy=http://username:[email protected]:8080/  
strict-ssl=false
0
Ajay

Ändern Sie die Registrierung von http://registry.npmjs.org/ in https://registry.npmjs.org/ mit dem folgenden Befehl:

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

0
Nagendra Reddy