it-swarm.com.de

Wie installiere ich NPM hinter dem Authentifizierungs-Proxy unter Windows?

Ich muss die neueste Version von Node und NPM unter Windows ausführen. Ich habe Node 0.5.8 installiert und die NPM-Quellen von GitHub heruntergeladen. Die Schritte, die ich zur Installation von NPM ausgeführt habe, sind auf der GitHub-Site aufgeführt. Bei der Ausführung des folgenden Befehls ist jedoch ein Problem aufgetreten:

node cli.js install npm -gf

es schlägt jedoch 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, da ich eine Authentifizierung an meinem Proxy benötige, um eine Verbindung zum Internet herzustellen. Ich habe jedoch keine Möglichkeit gefunden, dem Installationsprogramm anzuweisen, meine Anmeldeinformationen für die Anmeldung zu verwenden. Gibt es eine Möglichkeit, meine Proxy-IP- und Anmeldeinformationen für die npm-Installation bereitzustellen, möglicherweise über Befehlszeilenargumente?

Ich kann das vollständige Protokoll mithilfe von Pastebin zur Verfügung stellen (scheint aber keine relevanteren Informationen zu haben), falls erforderlich.

30
Tobias

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

Meine Sequenz lief wie folgt ab:

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

proxy = http://domain\\username:[email protected]:port

  • Oder verwenden Sie dies, wenn Sie NICHT in einer AD-Domain sind:

proxy = http://username:[email protected]:port

  • Speicher die Datei
  • Öffnen Sie eine Eingabeaufforderung und versuchen Sie, npm zu verwenden.

Andere hatten zusätzlichen Erfolg mit dem folgenden zusätzlichen Befehl:

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 ein wenig angepasst werden, dies hat jedoch dazu geführt, dass ich diese Zeichenfolge nicht jedes Mal hinzufügen muss.

Prost

39
Eric Steinborn

Vielleicht funktioniert das Setzen einer Umgebungsvariablen für Sie:

set HTTP_PROXY=http://user:[email protected]:port

(In meinem Fall wird hierdurch die Fehlermeldung "connect UNKNOWN" behoben, es wird jedoch eine völlig andere Fehlermeldung angezeigt. Ich habe auch versucht, die Umgebungsvariable HTTPS_PROXY festzulegen, habe jedoch das gleiche Ergebnis erzielt.)

10
nafisto

Ich hatte dieses identische Problem und hier ist, was ich getan habe, um diese Arbeit zu machen:

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

    registry = http://registry.npmjs.org
    
  • Versuchen Sie den Befehl node cli.js install npm -gf erneut.

8
sam

Nach einigen Recherchen könnte ich es so benutzen:

  1. Installieren Sie NTLM Authorization Proxy Server oder einen anderen Proxyserver für NTLM, z. B. Cntlm. Ich persönlich bevorzuge den Python-Server, da ich daran basteln kann und die Leistung kein Problem darstellt.

  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 vermute, dass dies heutzutage der Normalfall ist.

  3. Legen Sie die Umgebungsvariablen http_proxy und https_proxy so fest, dass sie auf Ihren lokalen Proxy verweisen:

    set http_proxy = "localhost: 5865"
    set https_proxy = "localhost: 5865"

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

4
rob

Geben Sie dies in die Befehlszeile ein:

npm set proxy http://user:[email protected]:port

npm set https-proxy http://user:[email protected]:port

VERGESSEN SIE NICHT, HTTP: // vor Ihrem Benutzernamen einzuschließen. Es hat bei mir funktioniert.

3
Super Luvdub

Folgendes hat bei mir funktioniert.

Unter Windows 7:

npm config set proxy xxhttp://username:[email protected]:port# 

Dadurch sollte eine Datei mit dem Namen .npmrc im Ordner C:/users/<username> erstellt werden.

3
Chummar

Für jede der obigen Antworten muss der Benutzer sein Kennwort in eine Textdatei oder in eine Umgebungsvariable schreiben.

Persönlich gefiel mir eine Lösung wie diese nicht, weil sie unsicher war. 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 einfügt. Allerdings ist Active Directory nur eine proprietäre Implementierung von Kerberos.

Ich verwende diese Software jeden Tag auf einem Windows 8.1-Host. Den Code (golang) und die Binärdateien der ersten Version finden Sie unter https://github.com/nilleb/authentication-proxy .

2
nilleb

Dieses Problem wurde für mich behoben, nachdem ich die Datei . Npmrc wie oben erstellt und anschließend den Befehl adduser und die folgenden Eingabeaufforderungen von cmd ausgeführt hatte.

npm adduser

Führen Sie das folgende Kommando aus, um festzustellen, ob Sie einen autorisierten Benutzernamen haben:

npm whoami
2
John

Sie erhalten den Proxy-Host und den Port von Ihrem Serveradministrator oder Support.

Danach einrichten

npm config set http_proxy http://username:[email protected]:itsport
npm config set proxy http://username:[email protected]:itsport

Wenn das Passwort ein Sonderzeichen enthält, versuchen Sie es mit% urlencode. ZB: - Pfund (Hash) soll durch% 23 ersetzt werden.

1
Shamseer

Zumindest in Windows funktioniert es bei mir mit folgender Einstellung:

proxy = http: //domain% 5Cusername:passwort@proxy_ip:hafen

(1) Verwenden Sie %5C anstelle von \ (wie an anderer Stelle vorgeschlagen) und (2) Verwenden Sie die IP-Adresse anstelle des lokalen Computernamens für den Proxyserver.

1
Ganesh

Alle drei Dinge funktionierten für mich in .npmrc

proxy = http://unam:[email protected]:port
https-proxy = http://unam:[email protected]:port
registry = http://registry.npmjs.org
1
catrapture

CNTLM hat bei mir nicht funktioniert. Ich habe alle möglichen Kombinationen ausprobiert. NPM hat einen Authentifizierungsfehler gemeldet. 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 legen Sie diese fest

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 :)

0
user588459

Was für mich funktioniert hat, war wie folgt:

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
Kunal Nanda

Die Lösung, die für mich funktioniert hat, ist die folgende:

npm config set http_proxy http: // Benutzername : Passwort @ Host/IP : port

npm config set proxy http: // Benutzername : Passwort @ Host/IP : port

ersetzen Sie in meinem Fall die Parameter durch die Werte

Benutzername : (leer)

Passwort : (leer)

Host/IP : 192.36.36.110

Port : 8080

meine Befehle sind also

npm config set http_proxy http: //: @ 192.36.36.110: 8080

npm config set proxy http: //: @ 192.36.36.110: 8080

0
srujan maddula