Gibt es eine Möglichkeit, npm install (den Befehl) so zu gestalten, dass er hinter dem Proxy funktioniert?

266

Lesen Sie mehr über eine Proxy-Variable in einer .npmrcDatei, aber es funktioniert nicht. Der Versuch, das manuelle Herunterladen aller erforderlichen Pakete und die Installation zu vermeiden.

Ben
quelle

Antworten:

343

Ich habe dieses Problem folgendermaßen gelöst:

  1. Ich führe diesen Befehl aus:

    npm config set strict-ssl false
  2. Stellen Sie dann npm so ein, dass es mit http anstelle von https ausgeführt wird:

    npm config set registry "http://registry.npmjs.org/"
  3. Dann installiere ich Pakete mit dieser Syntax:

    npm --proxy http://username:[email protected]:80 install packagename

Überspringen Sie den username:passwordTeil, 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

Renato Gama
quelle
7
Heads up, wenn Ihr Passwort "@" npm enthält, wird Ihre Proxy-Einstellung nicht korrekt analysiert. Eine mögliche Problemumgehung besteht darin, einen falschen Benutzernamen: Kennwort in die npm-Konfiguration einzufügen und den Proxy-Autorisierungs-Header der Anforderung mithilfe eines lokalen Proxys (wie z. B. Fiddler) so zu ändern, dass er den richtigen Benutzernamen: Kennwort enthält. Beachten Sie, dass der in Proxy-Authorization gespeicherte Benutzername: password Base64-codiert ist.
BStruthers
14
Wenn Ihr Passwort ein @ -Symbol enthält, können Sie es übergeben, indem Sie Ihren Benutzernamen und Ihr Passwort in Anführungszeichen setzen.
Absynthe Minded Web Smith
9
Ihr Passwort kann Sonderzeichen enthalten, die jedoch URL-codiert sein müssen. Wenn Ihr Passwort also war my@password, sollte Ihre .npmrc-Datei my%40passwordfür den Passwortteil enthalten sein. In Anführungszeichen zu setzen funktioniert in einigen Fällen, aber die Codierung ist kinderleicht.
Chris Jaynes
1
Noch ein Gotcha! Wenn Sie zuvor Systemvariablen HTTP-PROXY eingestellt haben, stellen Sie sicher, dass Sie diese löschen!
Sydwell
1
Du Legende! Ich hatte es aufgegeben, npm dazu zu bringen, bei der Arbeit zu arbeiten, aber das löste es schließlich.
Tamj0rd2
308

npmProxy einrichten

Zum HTTP :

npm config set proxy http://proxy_host:port

Zum HTTPS :

Verwenden Sie die https-Proxy-Adresse, falls vorhanden

npm config set https-proxy https://proxy.company.com:8080

Andernfalls verwenden Sie die http-Proxy-Adresse erneut

npm config set https-proxy http://proxy.company.com:8080

Hinweis : Der https-Proxy hat aber kein httpsProtokoll http.

Jithesh
quelle
9
Keine SOCKS-Unterstützung?
Grm
57
Beachten Sie, dass der https-Proxy nicht "https" als Protokoll hat, sondern "http". Das zu ändern löste das Problem für mich.
Peterhil
3
@ Peterhil Danke für diesen Tipp. Es ist verrückt, aber ich habe Stunden damit verbracht, dies mit "https" zu lösen. Irgendeine Idee, warum es so funktioniert?
Manoj NV
2
@ManojNV, die Verbindung zum Proxyserver ist nicht verschlüsselt. Es geht nicht um HTTPS mit dem Proxyserver, sondern nur um HTTP. Die Nutzlast ist SSL zwischen dem Client und dem Zielserver. Wenn es HTTPS für den Proxyserver wäre, würden die Dinge zweimal verschlüsselt / entschlüsselt.
Jamie
1
Subtil. Vielen Dank @peterhil
Alec Breton
104

Versuchen Sie im Zweifelsfall alle diese Befehle wie folgt:

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
set HTTPS_PROXY=http://myusername:[email protected]:8080
set HTTP_PROXY=http://myusername:[email protected]:8080
export HTTPS_PROXY=http://myusername:[email protected]:8080
export HTTP_PROXY=http://myusername:[email protected]:8080
export http_proxy=http://myusername:[email protected]:8080

npm --proxy http://myusername:[email protected]:8080 \
--without-ssl --insecure -g install

=======

AKTUALISIEREN

Stellen Sie Ihre Einstellungen in ~/.bashrcoder~/.bash_profileStellen 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!

  1. Fügen Sie einfach den folgenden Code am Ende Ihrer ~/.bashrcDatei ein:

    ######################
    # User Variables (Edit These!)
    ######################
    username="myusername"
    password="mypassword"
    proxy="mycompany:8080"
    
    ######################
    # Environement Variables
    # (npm does use these variables, and they are vital to lots of applications)
    ######################
    export HTTPS_PROXY="http://$username:$password@$proxy"
    export HTTP_PROXY="http://$username:$password@$proxy"
    export http_proxy="http://$username:$password@$proxy"
    export https_proxy="http://$username:$password@$proxy"
    export all_proxy="http://$username:$password@$proxy"
    export ftp_proxy="http://$username:$password@$proxy"
    export dns_proxy="http://$username:$password@$proxy"
    export rsync_proxy="http://$username:$password@$proxy"
    export no_proxy="127.0.0.10/8, localhost, 10.0.0.0/8, 172.16.0.0/12, 192.168.0.0/16"
    
    ######################
    # npm Settings
    ######################
    npm config set registry http://registry.npmjs.org/
    npm config set proxy "http://$username:$password@$proxy"
    npm config set https-proxy "http://$username:$password@$proxy"
    npm config set strict-ssl false
    echo "registry=http://registry.npmjs.org/" > ~/.npmrc
    echo "proxy=http://$username:$password@$proxy" >> ~/.npmrc
    echo "strict-ssl=false" >> ~/.npmrc
    echo "http-proxy=http://$username:$password@$proxy" >> ~/.npmrc
    echo "http_proxy=http://$username:$password@$proxy" >> ~/.npmrc
    echo "https_proxy=http://$username:$password@$proxy" >> ~/.npmrc
    echo "https-proxy=http://$username:$password@$proxy" >> ~/.npmrc
    
    ######################
    # WGET SETTINGS
    # (Bonus Settings! Not required for npm to work, but needed for lots of other programs)
    ######################
    echo "https_proxy = http://$username:$password@$proxy/" > ~/.wgetrc
    echo "http_proxy = http://$username:$password@$proxy/" >> ~/.wgetrc
    echo "ftp_proxy = http://$username:$password@$proxy/" >> ~/.wgetrc
    echo "use_proxy = on" >> ~/.wgetrc
    
    ######################
    # CURL SETTINGS
    # (Bonus Settings! Not required for npm to work, but needed for lots of other programs)
    ######################
    echo "proxy=http://$username:$password@$proxy" > ~/.curlrc
  2. Bearbeiten Sie dann die Felder "Benutzername", "Passwort" und "Proxy" in dem Code, den Sie eingefügt haben.

  3. Öffnen Sie ein neues Terminal

  4. Überprüfen Sie Ihre Einstellungen, indem Sie npm config listund ausführencat ~/.npmrc

  5. Versuchen Sie, Ihr Modul mit zu installieren

    • npm install __, oder
    • npm --without-ssl --insecure install __, oder
    • Überschreiben Sie Ihre Proxy-Einstellungen mit npm --without-ssl --insecure --proxy http://username:password@proxy:8080 install __ .
    • Wenn das Modul global verfügbar sein soll, fügen Sie die Option hinzu -g
Katie
quelle
3
Der letzte Befehl hat bei mir funktioniert. Alle zuvor scheiterten
Foecum
3
Ich habe ungefähr 50 Antworten zu dieser Funktion gelesen ... das einzige, was funktioniert hat, war Ihre Antwort ... Danke !!!
Lorenzo
4
Danke Leute!! Ich bin froh, dass es funktioniert! Dies war ein großer Kopfschmerz bei der Arbeit, also bin ich froh, dass ich anderen helfen kann: P
Katie
2
+1. Das funktioniert. Ich benutzte Commands- 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 falsefür npm config und dann installiert npm Paket mit npm --proxy http://myusername:[email protected]:8080 --without-ssl --insecure -g install {packagename}. Danke
Atur
1
Nach drei Tagen hat diese Lösung für mich funktioniert.
Mohan Singh
33

Haben Sie Befehlszeilenoptionen anstelle der .npmrcDatei 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/

Ben Humphreys
quelle
+1 Ich habe die anderen ausprobiert. Dies war derjenige, der für mich funktioniert hat. mit dem Auth-Teil von Renato Gama
Winner_Joiner
20

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:

npm config list

Einstellungen hinter einem Proxy:

npm config set registry http://registry.npmjs.org/
npm config set http-proxy http://username:password@ip:port
npm config set https-proxy http://username:password@ip:port
npm config set proxy http://username:password@ip:port
npm set strict-ssl false

Hoffe, das spart jemandem Zeit

Carmine Tambascia
quelle
Wie finde ich meine Proxy-Adresse?
Robin
@Robin Ein Weg, wenn Windows verwendet wird, speichert IE sie. Sie können unter IE die LAN-Einstellungen unter Verbindung anzeigen und dort anzeigen.
eaglei22
@Robin hängt natürlich vom Browser ab, ist aber normalerweise unter Einstellungen
Carmine Tambascia
@Robin in den Browers unter Einstellung sollten Sie die Proxy-Einstellung sehen / überprüfen. Normalerweise gibt es eine Datei mit .pac, in der das letzte sein sollte: PROXY YourProxyAdress: PORT
Carmine Tambascia
17

Das funktioniert bei mir unter Windows:

npm config set proxy http://domain%5Cuser:pass@host:port

Wenn Sie sich in keiner Domain befinden, verwenden Sie:

npm config set proxy http://user:pass@host:port

Wenn Sie Ihr Passwort Sonderzeichen wie enthält ", @, :und so weiter, ersetzen Sie sie durch ihre URL codierten Werte. Zum Beispiel "-> %22, @-> %40, :-> %3A. %5Cwird für den Charakter verwendet \.

maximus
quelle
6
Danke für den Rat, das hat bei mir funktioniert. Sie können Ihre Javascript-Konsole mit Strg + Umschalt + J öffnen und eingeben encodeURIComponent("YourP@ssword"), um die verschlüsselte Version Ihres Passworts zu erhalten.
Jaggedsoft
15

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

Andrei
quelle
Was bedeutet -g?
David
1
richtet es global ein, nicht für die lokale Installation
Andrei
8
$ npm config set proxy http://login:pass@host:port
$ npm config set https-proxy http://login:pass@host:port
Sharan Rajendran
quelle
1
Fügen Sie bitte einige Kommentare hinzu.
Max
8

Das hat bei mir funktioniert-

npm config set proxy http://proxy.company.com:8080
npm config set https-proxy http://proxy.company.com:8080
npm set strict-ssl=false
abhishek khandait
quelle
7

vim ~/.npmrcin Ihrem Linux-Computer und fügen Sie Folgendes hinzu. Vergessen Sie nicht, ein registryTeil hinzuzufügen, da dies in vielen Fällen zu Fehlern führt.

proxy=http://<proxy-url>:<port>
https-proxy=https://<proxy-url>:<port>
registry=http://registry.npmjs.org/
Abhishek Dwivedi
quelle
2
Viele Proxys unterstützen das Tunneln von https-Anforderungen, verarbeiten jedoch keine https-Verbindung zu sich selbst. Wenn Sie also in Schwierigkeiten geraten, versuchen Sie, https-proxy=https://..inhttps-proxy=http://..
YoYo
7

Schließlich habe ich es geschafft, dieses Problem als Behinde-Proxy mit AD-Authentifizierung zu lösen. Ich musste ausführen:

npm config set proxy http://domain%5Cuser:password@proxy:port/
npm config set https-proxy http://domain%5Cuser:password@proxy:port/

Es ist sehr wichtig, spezielle Zeichen wie Backshlash oder # per URL zu codieren. In meinem Fall musste ich codieren

  1. backshlashmit% 5C also domain\user willseindomain%5Cuser
  2. #mit %23%0Aso passwort unterschreiben wie Password#2es sein wirdPassword%23%0A2

Ich habe auch folgende Einstellungen hinzugefügt:

npm config set strict-ssl false
npm config set registry http://registry.npmjs.org/
Aleksander Billewicz
quelle
6

Obwohl ich den Proxy mit config eingestellt habe, wurde das Problem nicht gelöst, aber nachdem dieser für mich funktioniert hat:

npm --https-proxy http://XX.AA.AA.BB:8080 Cordova-Plugins installieren

npm --proxy http://XX.AA.AA.BB:8080 installieren

Sreedhar GS
quelle
Diese eine Arbeit für mich, keine andere Änderung. Öffnen Sie das Befehlsfenster und verwenden Sie es oben. Es wird funktionieren
AKS
6

Ich habe alle diese Optionen ausprobiert, aber mein Proxy hatte aus irgendeinem Grund nichts davon. Dann, aus Verzweiflung / Verzweiflung geboren, versuchte ich es zufälligcurl in meiner Git Bash-Shell , und es hat funktioniert.

Deaktivieren aller Proxy-Optionen mit

npm config rm proxy
npm config rm https-proxy

Und dann npm installfunktionierte das Laufen in meiner Git Bash-Shell perfekt. Ich weiß nicht, wie es für den Proxy richtig eingerichtet ist und die Windows- cmdEingabeaufforderung nicht, aber es hat funktioniert.

Evan Knowles
quelle
6
npm config set proxy <http://...>:<port_number>
npm config set registry http://registry.npmjs.org/

Dies löste mein Problem.

venugopal
quelle
Das Entscheidende war, den Link zur Registrierung zu ändern: Anstelle von https hatte ich vorher einen http-Link.
Alex Fainshtein
6

Nachdem ich endlich verschiedene Antworten verknüpft habe, helfen mir die ersten vier Zeilen von @Kayvar answers, das Problem zu lösen:

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
Muhammad Faizan Khan
quelle
5

Versuchen Sie, .npmrc in C: \ Users \ .npmrc zu finden

dann öffnen (Notizblock), schreiben und darin speichern:

proxy=http://<username>:<pass>@<proxyhost>:<port>

PS: entferne bitte "<" und ">" !!

Igor Beaufils
quelle
5

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-dev

Nick Flanagan
quelle
1
Ihr https-proxyist wahrscheinlich nicht https:. Zumindest ist es wahrscheinlich nicht korrekt, für jeden den gleichen Port zu haben, aber ich denke, beide haben wahrscheinlich den gleichen Wert.
Toddkaufmann
5

Auf dem Windows-System

Entfernen Sie die Proxy- und Registrierungseinstellungen (falls bereits festgelegt) und legen Sie die Umgebungsvariablen in der Befehlszeile über fest

SET HTTP_PROXY=http://username:password@domain:port
SET HTTPS_PROXY=http://username:password@domain:port

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.

SoSufi
quelle
Das hat bei mir funktioniert. Das Gleichheits-Symbol schien alles zum Laufen zu bringen. Vorher benutzte ich nur, SET HTTP_PROXY http://username:password@domain:portaber das Umschalten auf SET HTTP_PROXY=http://username:password@domain:portschien alles zum Laufen zu bringen
Dib
4

Verwenden 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.

Pankaj
quelle
1
Ich musste eine Domain für die Authentifizierung verwenden und habe einen Escape-Back-Slash verwendet: mit dieser Zeichenfolge% 5C. Es hat endlich geklappt!
Francesco
4

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:

Wie es unter Windows aussieht

Dmytro Melnychuk
quelle
4

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

proxy=http://[IPADDRESS]:[PORTNUMBER]
https-proxy=http://[IPADDRESS]:[PORTNUMBER]

ich hatte

proxy=[IPADDRESS]:[PORTNUMBER]
https-proxy=[IPADDRESS]:[PORTNUMBER]

Was natürlich nicht funktioniert hat, aber die Fehlermeldungen haben auch nicht viel geholfen ...

Acroneos
quelle
4

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:

npm config set registry http://registry.npmjs.org/
npm config set http-proxy ip:port
npm config set https-proxy ip:port
npm config set proxy ip:port
npm set strict-ssl false

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.

SkuraZZ
quelle
4

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:

  1. Laden Sie die CA-Zertifikate von curl herunter, die auf dem CA-Bundle von Mozilla basieren. Sie können auch das Shellscript "Firefox-db2pem.sh" von curl verwenden, um Ihre lokale Firefox-Datenbank zu konvertieren.
  2. Rufen Sie mit https eine Webseite auf, z. B. Stackoverflow in Chrome oder Internet Explorer
  3. Klicken Sie auf das Schlosssymbol, klicken Sie auf Zertifikate anzeigen oder in Chrome auf "Gültig"
  4. Navigieren Sie zum Zertifizierungspfad. Das oberste Zertifikat oder das Stammzertifikat ist dasjenige, das wir extrahieren möchten. Klicken Sie auf dieses Zertifikat und dann auf "Zertifikat anzeigen".
  5. Klicken Sie auf die zweite Registerkarte "Details". Klicken Sie auf "In Datei kopieren". Wählen Sie das DER-Format und notieren Sie sich, wo Sie die Datei speichern. Wählen Sie einen geeigneten Dateinamen wie rootcert.cer
  6. Wenn Sie Git installiert haben, haben Sie openssl.exe. Andernfalls installieren Sie git für Windows zu diesem Zeitpunkt. Höchstwahrscheinlich befindet sich die ausführbare Datei openssl unter C: \ Programme \ git \ usr \ bin \ openssl.exe. Wir werden openssl verwenden, um die Datei in das PEM-Format zu konvertieren, das NPM benötigt, um es zu verstehen.
  7. Konvertieren Sie die in Schritt 5 gespeicherte Datei mit dem folgenden Befehl:
    openssl x509 -inform DES -in **rootcert**.cer -out outcert.pem -text
    where rootcert der Dateiname des Zertifikats, das Sie in Schritt 5 gespeichert haben.
  8. Öffnen Sie die Datei outcert.pem in einem Texteditor, der intelligent genug ist, um die Zeilenenden zu verstehen, also nicht den Editor. Wählen Sie den gesamten Text aus und kopieren Sie ihn in die Zwischenablage.
  9. Jetzt fügen wir diesen Inhalt an das Ende des in Schritt 1 erstellten CA Cert-Bundles ein. Öffnen Sie daher die Datei cacert.pem in Ihrem erweiterten Texteditor. Gehen Sie zum Ende der Datei und fügen Sie den Inhalt vom vorherigen Schritt bis zum Ende der Datei ein. (Behalten Sie die leere Zeile unter dem gerade eingefügten bei)
  10. Kopieren Sie das gespeicherte cabundle.pem an einen geeigneten Ort. ZB dein% userprofile% oder ~. Notieren Sie sich den Speicherort der Datei.
  11. Jetzt werden wir npm / garn anweisen, das neue Bundle zu verwenden. Schreiben Sie
    npm config set cafile **C:\Users\username\cacert.pem
    in eine Befehlszeile, wobei C: \ Benutzer \ Benutzername \ cacert.pem der Pfad aus Schritt 10 ist.
  12. Optional: Aktivieren Sie strict-ssl erneut. 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.

sur
quelle
3

Hier sind die Schritte, die ich befolgt habe (Windows):

  1. Bearbeiten Sie die folgende Datei C:\Users\<WIN_USERNAME>\.npmrc
  2. Exportieren Sie das Zertifikat von der folgenden Adresse in Ihr Dateisystem: https://registry.npmjs.org

  3. Navigieren Sie zum exportierten Zertifikatspeicherort und geben Sie den folgenden Befehl ein:

    npm config set cafile npm_certificate.cer

  4. 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!

Marco
quelle
2

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

set http_proxy=http://domain%5Cuser:password%3F@myproxy:8080

zu

set http_proxy=http://domain%%5Cuser:password%%3F@myproxy:8080

Vielleicht ist es ein Randfall, aber hoffentlich hilft es jemandem.

Brandon Søren Culley
quelle
1

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.

Govind Avireddi
quelle
0

Öffnen Sie einfach das neue Terminal und geben Sie npm config editund ein npm config -g edit. Auf Standardeinstellung zurücksetzen. Öffnen npm --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 :)

rufatZZ
quelle