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

Come installare NPM dietro proxy di autenticazione su Windows?

Ho bisogno di eseguire l'ultima versione di Node e NPM su Windows. Ho installato Node 0.5.8 e scaricato i sorgenti di NPM da GitHub. I passi che ho seguito per installare NPM erano elencati sul suo sito GitHub, ma ho un problema nell'eseguire il seguente comando:

node cli.js install npm -gf

ma fallisce con il seguente messaggio di errore:

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

Penso che questo sia un problema perché ho bisogno dell'autenticazione al mio proxy per connettermi a Internet. Ma non ho trovato alcun modo per dire al programma di installazione di usare le mie credenziali per il login. C'è una possibilità di fornire il mio IP proxy e le informazioni di login all'installazione di npm forse tramite argomenti della riga di comando?

Posso fornire il log completo (ma sembra non avere più informazioni rilevanti) usando pastebin se necessario.

Risposte (14)

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

set http_proxy ha funzionato molto bene per me, ma ho dovuto inserirlo ogni volta che aprivo il prompt dei comandi. Così ho dovuto combinare più risposte e ora il mio è permanente.

La mia sequenza è andata come segue:

  • Vai a C:\Users\YourUserName
  • Crea un file chiamato .npmrc
  • All'interno di quel file digita il seguente (se sei su un dominio AD):

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

  • Oppure usa questo se NON sei su un dominio AD:

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

  • Salva il file
  • Apri un prompt dei comandi e prova a usare npm

Altri hanno avuto più successo con il seguente comando extra:

strict-ssl = false

*Si dovrebbe poter usare un indirizzo IP o l'URL del proxy al posto di “IP” sopra.

La tua stringa proxy potrebbe aver bisogno di essere modificata un po’, ma questo ha fatto in modo che non dovessi aggiungere questo ogni singola volta.

Salute

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

Forse l'impostazione di una variabile d'ambiente funzionerà per te:

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

(Nel mio caso, questo risolve il “connect UNKNOWN”, ma ottengo un errore “socket hang up” completamente diverso. Ho anche provato a impostare la variabile d'ambiente HTTPS_PROXY, ma ho ottenuto lo stesso risultato).

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

Ho avuto questo identico problema ed ecco cosa ho fatto per farlo funzionare:

  • Vai a: C:\Users\YourUserName
  • Crea un file chiamato .npmrc
  • E la sua voce sarà:

  • Prova di nuovo il comando node cli.js install npm -gf.

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

Dopo alcune ricerche, potrei usarlo in questo modo:

  1. Installare NTLM Authorization Proxy Server o un altro server proxy per NTLM, come Cntlm. Personalmente, preferisco il server python, perché posso armeggiare con esso, e le prestazioni non sono un problema.

  2. Impostare la configurazione; si noti che nel mio caso, ho dovuto abilitare sia la modalità LM che NT, e sospetterei che sia il caso normale, al giorno d'oggi.

  3. Imposta le variabili d'ambiente http\proxy e https\proxy per puntare al tuo proxy locale:

  4. npm dovrebbe funzionare ora, naturalmente dovrebbe essere eseguito da una shell dove sono definite le variabili d'ambiente di cui sopra.

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

Scrivi questo nella riga di comando:

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

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

NON DIMENTICARE DI INCLUDERE HTTP:// prima del tuo nome utente. Per me ha funzionato.

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

Il seguente ha funzionato per me.

Su Windows 7:

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

Questo dovrebbe creare un file chiamato .npmrc nella cartella C:/users/<username>.

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

Ognuna delle risposte precedenti ha bisogno che l'utente scriva la sua password in un file di testo, o in una variabile ambientale.

Personalmente non mi piaceva una soluzione come queste, per il loro approccio insicuro. Così ho provato a scrivere un'applicazione che inietta il token Kerberos dell'utente corrente negli scambi tra il client (npm, bower, git) e il proxy. Detto questo, Active Directory è solo un'implementazione proprietaria di Kerberos.

Uso questo software tutti i giorni, su un host Windows 8.1. Potete trovare il codice (golang) e i binari della prima release su https://github.com/nilleb/authentication-proxy .

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

Questo problema si è risolto per me dopo aver creato il file .npmrc come sopra, e poi aver eseguito il comando adduser e i seguenti prompt cmd.

npm adduser

Esegui il seguente comando per vedere se hai un nome utente autorizzato:

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

Otterrete l'host e la porta del proxy dall'amministratore del vostro server o dal supporto.

Dopo di che imposta

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

Se c'è qualche carattere speciale nella password prova con % urlencode. Es: - il cancelletto (hash) dovrebbe essere sostituito da %23.

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

Almeno in Windows, funziona per me con la seguente impostazione:

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

cioè (1) usare %5C invece di `Almeno in Windows, funziona per me con la seguente impostazione:

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

cioè (1) usare %5C invece di (come suggerito altrove) e (2) usare l'indirizzo IP invece del nome della macchina locale per il server proxy.

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

Tutte e tre le cose hanno funzionato per me 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

La soluzione che ha funzionato per me è la seguente:

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

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

sostituire i parametri con i valori, nel mio caso

username : (vuoto)

password : (vuoto)

host/IP : 192.36.36.110

port : 8080

quindi i miei comandi sono

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

Quello che ha funzionato per me è stato il seguente:

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

Non ho dovuto inserire nessun nome utente o password, semplicemente l'url del file PAC.

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

CNTLM non ha funzionato per me. Ho provato tutte le combinazioni possibili. NPM dava un errore di autenticazione. Fiddler è venuto in soccorso e mi ha salvato il tempo. È facile da installare e configurare. Imposta Fiddler Rule su Automatically Authenticated.In .npmrc imposta questi

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

Ha funzionato per me :)