2011-10-17 13:25:58 +0000 2011-10-17 13:25:58 +0000
30
30

Wie installiert man NPM hinter dem Authentifizierungsproxy unter Windows?

Ich muss die neueste Version von Node und NPM unter Windows ausführen. Ich habe Node 0.5.8 installiert und die Quellen von NPM von GitHub heruntergeladen. Die Schritte, die ich zur Installation von NPM befolgt habe, waren auf der GitHub-Seite aufgeführt, aber ich habe ein Problem beim Ausführen des folgenden Befehls:

node cli.js install npm -gf

, aber es schlägt mit der folgenden Fehlermeldung fehl:

Error: connect UNKNOWN
at errnoException (net_uv.js:566:11)
at Object.afterConnect [as oncomplete] (net_uv.js:557:18)

System Windows_NT 5.1.2600
command "...\Node\bin\node.exe" "...\npm\cli.js" "install" "npm" "-gf"
cwd ...\npm
node -v v0.5.8
npm -v 1.0.94
code UNKNOWN

Ich denke, dass dies ein Problem ist, weil ich eine Authentifizierung an meinem Proxy benötige, um mich mit dem Internet zu verbinden. Aber ich habe keine Möglichkeit gefunden, dem Installer mitzuteilen, dass er meine Anmeldedaten für die Anmeldung verwenden soll. Gibt es eine Möglichkeit, meine Proxy-IP und meine Anmeldeinformationen der npm-Installation vielleicht über Kommandozeilenargumente mitzuteilen?

Ich kann das vollständige Protokoll (das aber keine weiteren relevanten Informationen zu haben scheint) über pastebin bereitstellen, falls erforderlich.

Antworten (14)

39
39
39
2012-12-03 20:05:07 +0000

set http_proxy hat bei mir sehr gut funktioniert, aber ich musste es jedes Mal eingeben, wenn ich die Eingabeaufforderung öffnete. Also musste ich mehrere Antworten kombinieren und jetzt ist meine dauerhaft.

Meine Sequenz ging wie folgt:

  • Gehen Sie zu C:\Users\YourUserName
  • Erstellen Sie eine Datei mit dem Namen .npmrc
  • Geben Sie innerhalb dieser Datei Folgendes ein (wenn Sie sich in einer AD-Domäne befinden):

proxy = http://domain\username:password@ip:port

  • Oder verwenden Sie dies, wenn Sie sich NICHT in einer AD-Domäne befinden:

proxy = http://username:password@ip:port

  • Speichern Sie die Datei
  • Öffnen Sie eine Eingabeaufforderung und versuchen Sie npm

Andere haben mit dem folgenden zusätzlichen Befehl Erfolg gehabt:

strict-ssl = false

* Sie sollten in der Lage sein, eine IP-Adresse oder die URL zum Proxy anstelle von “IP” oben zu verwenden.

Ihre Proxy-Zeichenfolge muss möglicherweise etwas angepasst werden, aber so musste ich dies nicht jedes Mal hinzufügen.

Prost

10
10
10
2011-10-19 17:19:05 +0000

Vielleicht hilft Ihnen das Setzen einer Umgebungsvariablen:

set HTTP_PROXY=http://user:pass@server.url:port

(In meinem Fall löst das den “connect UNKNOWN”-Fehler, aber ich bekomme einen ganz anderen “socket hang up”-Fehler. Ich habe auch versucht, die Umgebungsvariable HTTPS_PROXY zu setzen, erhielt aber das gleiche Ergebnis).

8
8
8
2011-11-16 16:41:09 +0000

Ich hatte das gleiche Problem und ich habe folgendes getan, damit es funktioniert:

  • Gehen Sie zu: C:\Users\YourUserName
  • Erstellen Sie eine Datei mit dem Namen .npmrc
  • Und der Eintrag lautet:

  • Versuchen Sie erneut den Befehl node cli.js install npm -gf.

4
4
4
2012-03-12 09:56:43 +0000

Nach einigen Recherchen konnte ich es so verwenden:

  1. Installieren Sie NTLM Authorization Proxy Server oder einen anderen Proxy-Server für NTLM, wie Cntlm. Ich persönlich bevorzuge den Python-Server, weil ich damit herumspielen kann und die Performance kein Problem ist.

  2. Richten Sie die Konfiguration ein; beachten Sie, dass ich in meinem Fall sowohl den LM- als auch den NT-Modus aktivieren musste, und ich würde vermuten, dass dies heutzutage der Normalfall ist.

  3. Setzen Sie die Umgebungsvariablen http_proxy und https_proxy so, dass sie auf Ihren lokalen Proxy zeigen:

  4. npm sollte jetzt funktionieren, natürlich sollte es von einer Shell ausgeführt werden, in der die obigen Umgebungsvariablen definiert sind.

3
3
3
2013-09-04 10:46:04 +0000

Geben Sie Folgendes in die Befehlszeile ein:

npm set proxy http://user:pass@ip:port

npm set https-proxy http://user:pass@ip:port

DONT FORGET TO INCLUDE HTTP:// before your username. Bei mir hat es funktioniert.

3
3
3
2013-06-13 19:12:07 +0000

Das Folgende hat bei mir funktioniert.

Unter Windows 7:

npm config set proxy xxhttp://username:password@proxyhost:port#

Dies sollte eine Datei namens .npmrc im Ordner C:/users/<username> erstellen.

3
3
3
2016-05-03 20:27:58 +0000

Bei jeder der oben genannten Lösungen muss der Benutzer sein Passwort in eine Textdatei oder in eine Umgebungsvariable schreiben.

Persönlich mochte ich solche Lösungen nicht, weil sie unsicher sind. Also habe ich versucht, eine Anwendung zu schreiben, die das Kerberos-Token des aktuellen Benutzers in den Austausch zwischen dem Client (npm, bower, git) und dem Proxy injiziert. Das heißt, Active Directory ist nur eine proprietäre Implementierung von Kerberos.

Ich benutze diese Software täglich, auf einem Windows 8.1 Host. Sie können den Code (golang) und die ersten Release-Binaries auf https://github.com/nilleb/authentication-proxy finden.

2
2
2
2012-05-02 03:41:48 +0000

Dieses Problem wurde bei mir behoben, nachdem ich die Datei .npmrc wie oben erstellt und dann den Befehl adduser und die folgenden cmd-Eingabeaufforderungen ausgeführt hatte.

npm adduser

Führen Sie den folgenden Befehl aus, um zu sehen, ob Sie einen autorisierten Benutzernamen haben:

npm whoami
1
1
1
2015-07-07 21:58:10 +0000

Den Proxy-Host und Port erhalten Sie von Ihrem Server-Administrator oder dem Support.

Danach richten Sie

npm config set http_proxy http://username:password@proxyofmycomp.com:itsport
npm config set proxy http://username:password@proxyofmycomp.com:itsport

Wenn das Passwort ein Sonderzeichen enthält, versuchen Sie es mit % urlencode. Z.B.:- Pfund (Raute) sollte durch %23 ersetzt werden.

1
1
1
2015-06-18 09:54:36 +0000

Zumindest unter Windows funktioniert es bei mir mit der folgenden Einstellung:

proxy=http://_domain_%5C_username_:_password_@ **_proxy\_ip_** :_port_

d. h., (1) verwenden Sie %5C statt `Zumindest unter Windows funktioniert es bei mir mit der folgenden Einstellung:

proxy=http://_domain_%5C_username_:_password_@ **_proxy\_ip_** :_port_

d. h., (1) verwenden Sie %5C statt (wie an anderer Stelle vorgeschlagen) und (2) verwenden Sie die IP-Adresse statt des lokalen Rechnernamens für den Proxyserver.

1
1
1
2013-09-27 06:46:50 +0000

Alle drei Dinge funktionierten bei mir in .npmrc

proxy = http://unam:pwd@host:port
https-proxy = http://unam:pwd@host:port
registry = http://registry.npmjs.org
0
0
0
2016-02-22 06:19:01 +0000

Die Lösung, die bei mir funktioniert hat, ist die folgende:

npm config set http_proxy http://username:password@host/IP:port

npm config set proxy http://username:password@host/IP:port

die Parameter durch die Werte ersetzen, in meinem Fall

username : (leer)

password : (leer)

host/IP : 192.36.36.110

port : 8080

Meine Befehle sind also

npm config set http_proxy TEMP0:@192.36.36.110:8080

npm config set proxy TEMP0:@192.36.36.110:8080

0
0
0
2018-01-08 22:13:37 +0000

Bei mir hat es folgendermaßen funktioniert:

registry=http://registry.npmjs.org
proxy=http://<url.pac>
https-proxy=http://<url.pac>
http-proxy=http://<url.pac>
strict-ssl=false

Ich musste keine Benutzernamen oder Passwörter eingeben, nur die Url der PAC-Datei.

0
0
0
2016-04-29 05:14:16 +0000

CNTLM hat bei mir nicht funktioniert. Ich habe alle möglichen Kombinationen ausprobiert. NPM gab einen Authentifizierungsfehler aus. Fiddler kam zur Rettung und sparte mir Zeit. Es ist einfach zu installieren und zu konfigurieren. Setzen Sie die Fiddler-Regel auf “Automatisch authentifiziert” in .npmrc und setzen Sie diese

registry=http://registry.npmjs.org
proxy=http://127.0.0.1:8888
https-proxy=http://127.0.0.1:8888
http-proxy=http://127.0.0.1:8888
strict-ssl=false

Es hat bei mir funktioniert :)