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

Como instalar o NPM por detrás do proxy de autenticação no Windows?

Preciso de executar a última versão do Node e NPM no Windows. Instalei o Node 0.5.8 e descarreguei as fontes do NPM a partir do GitHub. Os passos que segui para instalar o NPM foram listados no seu site GitHub, mas tenho um problema ao executar o seguinte comando:

node cli.js install npm -gf

mas falha com a seguinte mensagem de erro:

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 que isto é um problema porque preciso de autenticação no meu proxy para me ligar à Internet. Mas não encontrei maneira de dizer ao instalador para usar as minhas credenciais para o login. Haverá a possibilidade de fornecer o meu IP proxy e informação de login à instalação npm talvez através de argumentos de linha de comando?

Posso fornecer o registo completo (mas parece não ter mais informação relevante) utilizando o pastebin, se necessário.

Respostas (14)

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

set http_proxy funcionou muito bem para mim, mas tive de o introduzir sempre que abri o comando. Por isso tive de combinar várias respostas e agora a minha é permanente.

A minha sequência foi como se segue:

  • Ir para C:\Users\YourUserName
  • Criar um ficheiro chamado .npmrc
  • Dentro desse ficheiro digite o seguinte (se estiver num domínio AD):

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

  • Ou use isto é que NÃO está num domínio AD:

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

  • Guardar o ficheiro
  • Abrir um prompt de comando e tentar usar npm

Outros tiveram um sucesso extra com o seguinte comando extra:

strict-ssl = false

* Deverá ser possível utilizar um endereço IP ou o URL para o proxy no lugar do “IP” acima.

A sua cadeia de caracteres proxy pode precisar de ser ajustada um pouco, mas isto fez com que não tivesse de adicionar isto todas as vezes.

Aplausos

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

Talvez a definição de uma variável de ambiente funcione para si:

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

(No meu caso, isto resolve o erro “connect UNKNOWN”, mas recebo um erro “socket hang up” completamente diferente. Também tentei definir a variável de ambiente HTTPS_PROXY, mas obtive o mesmo resultado).

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

Eu tinha esta questão idêntica e aqui está o que fiz para que isto funcionasse:

  • Ir para: C:\Users\YourUserName
  • Cria um ficheiro chamado .npmrc
  • E a sua entrada terá a seguinte redacção:

  • Tenta o comando node cli.js install npm -gf novamente.

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

Após alguma pesquisa, poderia usá-lo desta forma:

  1. Instalar NTLM Authorization Proxy Server ou outro servidor proxy para NTLM, como o Cntlm. Pessoalmente, prefiro o servidor python, porque posso mexer com ele, e o desempenho não é um problema.

  2. Configurar a configuração; note-se que, no meu caso, tive de activar tanto o modo LM como o NT, e suspeitaria que fosse o caso normal, hoje em dia.

  3. Configurar http_proxy e https_proxy variável de ambiente para apontar para o seu proxy local:

  4. npm deve funcionar agora, claro que deve ser executado a partir de uma shell onde as variáveis de ambiente acima são definidas.

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

Digite isto na linha de comando:

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

DONT FORGET TO INCLUDE HTTP://* antes do seu nome de utilizador. Funcionou para mim.

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

Os seguintes trabalharam para mim.

No Windows 7:

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

Isto deve criar um ficheiro chamado .npmrc na pasta C:/users/<username>.

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

Cada uma das respostas acima precisa que o utilizador escreva a sua palavra-passe num ficheiro de texto, ou numa variável ambiental.

Pessoalmente, não gostei de uma solução como estas, pela sua abordagem insegura. Por isso, tentei escrever uma aplicação que injectasse a ficha Kerberos do utilizador actual nas trocas entre o cliente (npm, bower, git) e o proxy. Dito isto, o Active Directory é apenas uma implementação proprietária de Kerberos.

Eu utilizo este software todos os dias, num anfitrião Windows 8.1. Pode encontrar o código (golang) e os primeiros binários de lançamento em https://github.com/nilleb/authentication-proxy .

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

Esta questão foi resolvida para mim depois de criar o ficheiro .npmrc como acima, e depois de executar o comando adduser e seguir as instruções cmd.

npm adduser

Execute o seguinte comando para ver se tem um nome de utilizador autorizado:

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

Receberá o anfitrião proxy e a porta do seu administrador do servidor ou do suporte.

Depois disso, configure

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

Se houver algum carácter especial na palavra-passe, tente com % urlencode. Ex:- libra(hash) shuold ser substituído por %23.

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

Pelo menos no Windows, funciona para mim com a seguinte configuração:

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

ou seja, (1) usar %5C em vez de `Pelo menos no Windows, funciona para mim com a seguinte configuração:

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

ou seja, (1) usar %5C em vez de (como sugerido noutro local) e (2) usar o endereço IP em vez do nome da máquina local para o servidor proxy.

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

As três coisas funcionaram para mim em .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

A solução que funcionou para mim é a seguinte:

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

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

substituir os parâmetros pelos valores, no meu caso

username : (vazio)

password* : (vazio)

host/IP* : 192.36.36.110

port : 8080

assim Os meus comandos são

npm config set http_proxy http://

npm config set proxy http://

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

O que funcionou para mim foi o seguinte:

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

Não tive de introduzir quaisquer nomes de utilizador ou palavras-passe, simplesmente o ficheiro PAC url.

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

A CNTLM não funcionou para mim. Tentei todas as combinações possíveis. NPM estava a dar erro de Autenticação. O Fiddler veio para me salvar e salvou-me o tempo. É fácil de instalar e configurar. Em .npmrc definir estas

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

Funcionou para mim :)