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

Hoe installeer ik NPM achter een authenticatie proxy op Windows?

Ik moet de nieuwste versie van Node en NPM op Windows draaien. Ik heb Node 0.5.8 geïnstalleerd en de broncode van NPM gedownload van GitHub. De stappen die ik volgde om NPM te installeren werden vermeld op de GitHub site, maar ik heb een probleem met het uitvoeren van het volgende commando:

node cli.js install npm -gf

maar het mislukt met de volgende foutmelding:

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

Ik denk dat dit een probleem is omdat ik authenticatie nodig heb bij mijn proxy om verbinding te maken met het Internet. Maar ik heb geen manier gevonden om het installatieprogramma te vertellen dat het mijn gegevens moet gebruiken om in te loggen. Is er een mogelijkheid om mijn proxy IP en login-informatie te verstrekken aan npm installatie misschien via command-line argumenten?

Ik kan het volledige logboek verstrekken (maar lijkt geen relevante informatie meer te hebben) met behulp van pastebin indien nodig.

Antwoorden (14)

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

set http_proxy werkte heel goed voor mij, maar ik moest het elke keer invoeren als ik de opdrachtprompt opende. Dus moest ik meerdere antwoorden combineren en nu is de mijne permanent.

Mijn volgorde ging als volgt:

  • Ga naar C:\Users\YourUserName
  • Maak een bestand aan met de naam .npmrc
  • In dat bestand typ je het volgende (als je op een AD domein zit):

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

  • Of gebruik dit als je NIET op een AD domein zit:

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

  • Sla het bestand op
  • Open een opdrachtprompt en probeer npm

Anderen hebben extra succes gehad met het volgende extra commando:

strict-ssl = false

*U zou in staat moeten zijn om een IP adres of de URL naar de proxy te gebruiken in plaats van “IP” hierboven.

Je proxy string moet misschien een beetje aangepast worden, maar dit maakte het zo dat ik dit niet iedere keer hoefde toe te voegen.

Proost

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

Misschien werkt het instellen van een omgevingsvariabele voor jou:

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

(In mijn geval lost dit de “connect UNKNOWN” op, maar ik krijg een heel andere “socket hang up” fout. Ik heb ook geprobeerd om de HTTPS_PROXY omgevingsvariabele in te stellen, maar kreeg hetzelfde resultaat).

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

Ik had hetzelfde probleem en dit is wat ik deed om het te laten werken:

  • Ga naar: C:\Users\YourUserName
  • Maak een bestand aan met de naam .npmrc
  • En de invoer zal luiden:

  • Probeer het commando node cli.js install npm -gf opnieuw.

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

Na wat onderzoek kon ik het op deze manier gebruiken:

  1. Installeer NTLM Authorization Proxy Server of een andere proxy server voor NTLM, zoals Cntlm. Persoonlijk geef ik de voorkeur aan de python server, omdat ik er aan kan sleutelen, en de performance is geen probleem.

  2. Stel de configuratie in; merk op dat in mijn geval, ik zowel LM als NT mode moest inschakelen, en ik zou vermoeden dat dit het normale geval is, tegenwoordig.

  3. Stel http_proxy en https_proxy omgevingsvariabelen in om naar uw lokale proxy te wijzen:

  4. npm zou nu moeten werken, natuurlijk moet het uitgevoerd worden vanuit een shell waar de bovenstaande omgevingsvariabelen gedefinieerd zijn.

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

Type dit in de opdrachtregel:

VERGEET NIET om HTTP:// voor je gebruikersnaam te zetten. Het werkte voor mij.

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

Het volgende werkte voor mij.

Op Windows 7:

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

Dit zou een bestand met de naam .npmrc in de map C:/users/<username> moeten maken.

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

Elk van de bovenstaande antwoorden heeft de gebruiker nodig om haar wachtwoord in een tekstbestand te schrijven, of in een omgevingsvariabele.

Persoonlijk vond ik dit soort oplossingen maar niks, vanwege hun onveilige aanpak. Dus probeerde ik een applicatie te schrijven die het Kerberos token van de huidige gebruiker injecteert in de uitwisselingen tussen de client (npm, bower, git) en de proxy. Dat gezegd hebbende, Active Directory is gewoon een propriëtaire implementatie van Kerberos.

Ik gebruik deze software elke dag, op een Windows 8.1 host. Je kunt de code (golang) en de eerste versie binaries vinden op https://github.com/nilleb/authentication-proxy .

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

Dit probleem is bij mij opgelost na het aanmaken van het .npmrc bestand zoals hierboven, en vervolgens het commando adduser uit te voeren en de volgende cmd prompts te volgen.

npm adduser

Voer het volgende commando uit om te zien of je een geautoriseerde gebruikersnaam hebt:

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

U krijgt de proxy host en poort van uw server beheerder of support.

Daarna stel je

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

Als je een speciaal teken in je wachtwoord hebt, probeer het dan met % urlencode. Bv:- pond(hash) moet worden vervangen door %23.

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

In Windows werkt het voor mij tenminste met de volgende instelling:

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

d.w.z. (1) gebruik %5C in plaats van `In Windows werkt het voor mij tenminste met de volgende instelling:

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

d.w.z. (1) gebruik %5C in plaats van (zoals elders voorgesteld) en (2) gebruik het IP adres in plaats van de lokale machinenaam voor de proxy server.

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

Alle drie de dingen werkten voor mij 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

De oplossing die voor mij werkte is de volgende:

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

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

vervang de parameters door de waarden, in mijn geval

username : (leeg)

password : (leeg)

host/IP : 192.36.36.110

poort : 8080

dus mijn commando’s zijn

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

Wat voor mij werkte was als volgt:

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

Ik hoefde geen gebruikersnamen of wachtwoorden in te voeren, alleen de PAC file url.

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

CNTLM werkte niet voor mij. Ik heb alle mogelijke combinaties geprobeerd. NPM gaf een Authenticatie fout. Fiddler kwam als redding en redde mijn tijd. Het is gemakkelijk te installeren en te configureren. Zet Fiddler regel op Automatisch geauthenticeerd. In .npmrc zet je deze

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

Het werkte voor mij :)