Lesen Sie mehr über eine Proxy-Variable in einer .npmrc
Datei, aber es funktioniert nicht. Der Versuch, das manuelle Herunterladen aller erforderlichen Pakete und die Installation zu vermeiden.
266
Ich habe dieses Problem folgendermaßen gelöst:
Ich führe diesen Befehl aus:
npm config set strict-ssl false
Stellen Sie dann npm so ein, dass es mit http anstelle von https ausgeführt wird:
npm config set registry "http://registry.npmjs.org/"
Dann installiere ich Pakete mit dieser Syntax:
npm --proxy http://username:[email protected]:80 install packagename
Überspringen Sie den username:password
Teil, wenn Sie sich beim Proxy nicht authentifizieren müssen
EDIT: Ein Freund von mir nur darauf hingewiesen , dass Sie NPM an der Arbeit hinter einem Proxy erhalten können , indem BEID HTTP_PROXY und https_proxy Umgebungsvariablen, dann normalerweise den Befehl ausgibt Express npm installieren (zum Beispiel)
EDIT2: Beachten Sie, wie @BStruthers kommentierte, dass Passwörter mit "@" nicht korrekt analysiert werden, wenn @ das gesamte Passwort in Anführungszeichen setzt
my@password
, sollte Ihre .npmrc-Dateimy%40password
für den Passwortteil enthalten sein. In Anführungszeichen zu setzen funktioniert in einigen Fällen, aber die Codierung ist kinderleicht.npm
Proxy einrichtenZum
HTTP
:Zum
HTTPS
:Verwenden Sie die https-Proxy-Adresse, falls vorhanden
Andernfalls verwenden Sie die http-Proxy-Adresse erneut
Hinweis : Der https-Proxy hat aber kein
https
Protokollhttp
.quelle
Versuchen Sie im Zweifelsfall alle diese Befehle wie folgt:
=======
AKTUALISIEREN
Stellen Sie Ihre Einstellungen in
~/.bashrc
oder~/.bash_profile
Stellen Sie so, dass Sie sich nicht jedes Mal um Ihre Einstellungen kümmern müssen, wenn Sie ein neues Terminalfenster öffnen!Wenn Ihre Firma wie meine ist, muss ich mein Passwort ziemlich oft ändern. Also habe ich Folgendes in mein ~ / .bashrc- oder ~ / .bash_profile eingefügt, damit ich weiß, dass meine npm auf dem neuesten Stand ist, wenn ich ein Terminal öffne!
Fügen Sie einfach den folgenden Code am Ende Ihrer
~/.bashrc
Datei ein:Bearbeiten Sie dann die Felder "Benutzername", "Passwort" und "Proxy" in dem Code, den Sie eingefügt haben.
Öffnen Sie ein neues Terminal
Überprüfen Sie Ihre Einstellungen, indem Sie
npm config list
und ausführencat ~/.npmrc
Versuchen Sie, Ihr Modul mit zu installieren
npm install __
, odernpm --without-ssl --insecure install __
, odernpm --without-ssl --insecure --proxy http://username:password@proxy:8080 install __
.-g
quelle
npm config set registry http://registry.npmjs.org/
,npm config set proxy http://myusername:[email protected]:8080
,npm config set https-proxy http://myusername:[email protected]:8080
,npm config set strict-ssl false
für npm config und dann installiert npm Paket mitnpm --proxy http://myusername:[email protected]:8080 --without-ssl --insecure -g install {packagename}
. DankeHaben Sie Befehlszeilenoptionen anstelle der
.npmrc
Datei ausprobiert ?Ich denke so etwas
npm --proxy http://proxy-server:8080/ install {package-name}
hat bei mir funktioniert.Ich habe auch folgendes gesehen:
npm config set proxy http://proxy-server:8080/
quelle
Obwohl es bereits viele gute Ratschläge gibt, funktionierten für meine Umgebung (Windows 7, mit PowerShell) und die letzte verfügbare Version von node.js (v8.1.2) alle oben genannten Funktionen nicht, außer wenn ich die Einstellungen von brunowego befolgte .
Überprüfen Sie Ihre Einstellungen mit:
Einstellungen hinter einem Proxy:
Hoffe, das spart jemandem Zeit
quelle
Das funktioniert bei mir unter Windows:
Wenn Sie sich in keiner Domain befinden, verwenden Sie:
Wenn Sie Ihr Passwort Sonderzeichen wie enthält
"
,@
,:
und so weiter, ersetzen Sie sie durch ihre URL codierten Werte. Zum Beispiel"
->%22
,@
->%40
,:
->%3A
.%5C
wird für den Charakter verwendet\
.quelle
encodeURIComponent("YourP@ssword")
, um die verschlüsselte Version Ihres Passworts zu erhalten.Um den http-Proxy einzurichten, setzen Sie das Flag -g :
sudo npm config set proxy http://proxy_host:port -g
Stellen Sie für den https-Proxy erneut sicher, dass das Flag -g gesetzt ist:
sudo npm config set https-proxy http://proxy_host:port -g
quelle
quelle
Das hat bei mir funktioniert-
quelle
vim ~/.npmrc
in Ihrem Linux-Computer und fügen Sie Folgendes hinzu. Vergessen Sie nicht, einregistry
Teil hinzuzufügen, da dies in vielen Fällen zu Fehlern führt.quelle
https-proxy=https://..
inhttps-proxy=http://..
Schließlich habe ich es geschafft, dieses Problem als Behinde-Proxy mit AD-Authentifizierung zu lösen. Ich musste ausführen:
Es ist sehr wichtig, spezielle Zeichen wie Backshlash oder # per URL zu codieren. In meinem Fall musste ich codieren
backshlash
mit% 5C alsodomain\user will
seindomain%5Cuser
#
mit%23%0A
so passwort unterschreiben wiePassword#2
es sein wirdPassword%23%0A2
Ich habe auch folgende Einstellungen hinzugefügt:
quelle
Obwohl ich den Proxy mit config eingestellt habe, wurde das Problem nicht gelöst, aber nachdem dieser für mich funktioniert hat:
quelle
Ich habe alle diese Optionen ausprobiert, aber mein Proxy hatte aus irgendeinem Grund nichts davon. Dann, aus Verzweiflung / Verzweiflung geboren, versuchte ich es zufällig
curl
in meiner Git Bash-Shell , und es hat funktioniert.Deaktivieren aller Proxy-Optionen mit
Und dann
npm install
funktionierte das Laufen in meiner Git Bash-Shell perfekt. Ich weiß nicht, wie es für den Proxy richtig eingerichtet ist und die Windows-cmd
Eingabeaufforderung nicht, aber es hat funktioniert.quelle
Dies löste mein Problem.
quelle
Nachdem ich endlich verschiedene Antworten verknüpft habe, helfen mir die ersten vier Zeilen von @Kayvar answers, das Problem zu lösen:
quelle
Das hat bei mir funktioniert. Legen Sie den http- und https-Proxy fest.
quelle
Versuchen Sie, .npmrc in C: \ Users \ .npmrc zu finden
dann öffnen (Notizblock), schreiben und darin speichern:
PS: entferne bitte "<" und ">" !!
quelle
Für mich, obwohl Python usw. alle funktionieren, obwohl unser Corporate Proxy npm dies nicht tun würde.
Ich habe es versucht
npm config set proxy http://proxyccc.xxx.ca:8080 npm config set https-proxy https://proxyccc.xxx.ca:8080 npm config set registry http://registry.npmjs.org/
wie angewiesen, bekam aber immer den gleichen Fehler.
Erst als ich aus der .npmrc-Datei entfernte,
https-proxy https://proxyccc.xxx.ca:8080
funktionierte npm install elektron --save-devquelle
https-proxy
ist wahrscheinlich nichthttps:
. Zumindest ist es wahrscheinlich nicht korrekt, für jeden den gleichen Port zu haben, aber ich denke, beide haben wahrscheinlich den gleichen Wert.Auf dem Windows-System
Entfernen Sie die Proxy- und Registrierungseinstellungen (falls bereits festgelegt) und legen Sie die Umgebungsvariablen in der Befehlszeile über fest
Versuchen Sie dann, npm install auszuführen. Auf diese Weise legen Sie den Proxy nicht in .npmrc fest, aber für diese Sitzung funktioniert es.
quelle
SET HTTP_PROXY http://username:password@domain:port
aber das Umschalten aufSET HTTP_PROXY=http://username:password@domain:port
schien alles zum Laufen zu bringenVerwenden Sie den folgenden Befehl bei cmd oder GIT Bash oder einer anderen Eingabeaufforderung
$ npm config set proxy " http://192.168.1.101:4128 "
$ npm config set https-proxy " http://192.168.1.101:4128 "
Dabei ist 192.168.1.101 die Proxy-IP und 4128 der Port. Ändern Sie entsprechend Ihren Proxy-Einstellungen. es funktioniert für mich.
quelle
Viele Anwendungen (z. B. npm) können die Proxy-Einstellung von Benutzerumgebungsvariablen verwenden.
Sie können Ihrer Umgebung einfach die folgenden Variablen hinzufügen: HTTP_PROXY und HTTPS_PROXY , die für jeden den gleichen Wert haben
http: // user: password @ proxyAddress: proxyPort
Wenn Sie beispielsweise Windows haben, können Sie den Proxy wie folgt hinzufügen:
quelle
In meinem Fall habe ich vergessen, das "http: //" in meinen Konfigurationsdateien (zu finden unter C: \ Users \ [USERNAME] \ .npmrc) Proxy-Adressen festzulegen. Also anstatt zu haben
ich hatte
Was natürlich nicht funktioniert hat, aber die Fehlermeldungen haben auch nicht viel geholfen ...
quelle
Es gab oben viele Antworten auf diese Frage, aber keine davon hat für mich funktioniert. Alle von ihnen erwähnt, um
http://
Präfix hinzuzufügen . Also habe ich es auch hinzugefügt. Alles fehlgeschlagen.Es funktioniert endlich, nachdem ich versehentlich das
http://
Präfix entfernt habe . Die endgültige Konfiguration sieht folgendermaßen aus:Ich kenne die Logik dahinter nicht, aber es hat funktioniert. Wenn keine der oben genannten Antworten für Sie funktioniert, können Sie es vielleicht auf diese Weise versuchen. Hoffe, dieser ist nützlich.
quelle
Auf der Curl-Seite finden Sie gute Informationen zu SSL- und Zertifikatproblemen . Ich stütze den größten Teil meiner Antwort auf die dortigen Informationen.
Die Verwendung von strict-ssl false ist eine schlechte Praxis und kann zu Problemen führen. Stattdessen können wir das Zertifikat hinzufügen, das vom Zertifikat "Mann in der Mitte" injiziert wird.
So lösen Sie dies unter Windows:
openssl x509 -inform DES -in **rootcert**.cer -out outcert.pem -text
where rootcert der Dateiname des Zertifikats, das Sie in Schritt 5 gespeichert haben.
npm config set cafile **C:\Users\username\cacert.pem
in eine Befehlszeile, wobei C: \ Benutzer \ Benutzername \ cacert.pem der Pfad aus Schritt 10 ist.
npm config set strict-ssl true
Puh! Wir haben es geschafft! Jetzt kann npm verstehen, wie man eine Verbindung herstellt. Der Bonus ist, dass Sie curl anweisen können, dasselbe cabundle.pem zu verwenden, und dass es auch HTTPs versteht.
quelle
Hier sind die Schritte, die ich befolgt habe (Windows):
C:\Users\<WIN_USERNAME>\.npmrc
Exportieren Sie das Zertifikat von der folgenden Adresse in Ihr Dateisystem: https://registry.npmjs.org
Navigieren Sie zum exportierten Zertifikatspeicherort und geben Sie den folgenden Befehl ein:
npm config set cafile npm_certificate.cer
Fügen Sie der Datei die folgenden Änderungen hinzu:
registry=https://registry.npmjs.org/ strict-ssl=false https-proxy=http://[proxy_user]:[proxy_password]@[proxy_ip]:[proxy_port]/ cafile=npm_certificate.cer
Jetzt sollten Sie bereit sein zu gehen!
quelle
Mein Problem war ein dummer Fehler von meiner Seite. Da ich eines Tages meine Proxys schnell in eine Windows * .bat-Datei (http_proxy, https_proxy und ftp_proxy) abgelegt hatte, vergaß ich, die Sonderzeichen für die URL-codierte Domain \ user (% 5C) und das Kennwort mit dem Fragezeichen zu maskieren '?' (% 3F). Das heißt, wenn Sie den codierten Befehl haben, vergessen Sie nicht, das '%' im Befehl bat file zu maskieren.
ich habe mich verändert
zu
Vielleicht ist es ein Randfall, aber hoffentlich hilft es jemandem.
quelle
Wenn ich in den Proxy-Einstellungen ohne http / http-Präfix gebe, ist npm fehlgeschlagen, selbst wenn der Proxy-Host und der Port die richtigen Werte hatten. Es funktionierte erst nach dem Hinzufügen des Protokollpräfix.
quelle
Öffnen Sie einfach das neue Terminal und geben Sie
npm config edit
und einnpm config -g edit
. Auf Standardeinstellung zurücksetzen. Öffnennpm --without-ssl --insecure --proxy http://username:password@proxy:8080 install <package>
Sie nach dem Schließen des Terminals das neue und geben Sie es ein, wenn Sie es global hinzufügen möchten-g
.Es hat bei mir funktioniert, hoffe es funktioniert bei dir :)
quelle