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

29

Eu preciso executar a versão mais recente do Nó e do NPM no Windows. Eu instalei o Node 0.5.8 e baixei as fontes do NPM do GitHub. As etapas que segui para instalar o NPM foram listadas no site do 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

Acho que isso é um problema porque preciso de autenticação no meu proxy para me conectar à Internet. Mas não encontrei maneira de dizer ao instalador para usar minhas credenciais para login. Existe a possibilidade de fornecer meu IP de proxy e informações de login para a instalação do npm talvez através de argumentos de linha de comando?

Eu posso fornecer o log completo (mas parece não ter mais informações relevantes) usando pastebin se necessário.

    
por Tobias 17.10.2011 / 15:25

14 respostas

38

set http_proxy funcionou muito bem para mim, mas eu tive que inseri-lo toda vez que abria o prompt de comando. Então eu tive que combinar várias respostas e agora o meu é permanente.

Minha sequência foi a seguinte:

  • Ir para C:\Users\YourUserName
  • Crie um arquivo chamado .npmrc
  • Dentro desse tipo de arquivo, digite o seguinte (se você estiver em um domínio do AD):

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

  • Ou use isso, você NÃO está em um domínio do AD:

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

  • Salve o arquivo
  • Abra um prompt de comando e tente usar npm

Outros obtiveram sucesso extra com o seguinte comando extra:

strict-ssl = false

* Você deve conseguir usar um endereço IP ou a URL do proxy no lugar de "IP" acima.

Sua string de proxy pode precisar ser ajustada um pouco, mas isso fez com que eu não tivesse que adicionar isso todas as vezes.

Felicidades

    
por 03.12.2012 / 21:05
10

Talvez a configuração de uma variável de ambiente funcione para você:

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

(No meu caso, isso resolve o "connect UNKNOWN", mas recebo um erro "socket hang up" completamente diferente. Eu também tentei configurar a variável de ambiente HTTPS_PROXY, mas obtive o mesmo resultado.)

    
por 19.10.2011 / 19:19
8

Eu tive esse problema idêntico e eis o que fiz para que isso funcione:

  • Ir para: C:\Users\YourUserName
  • Crie um arquivo chamado .npmrc
  • E a entrada será:

    registry = http://registry.npmjs.org
    
  • Tente o comando node cli.js install npm -gf novamente.

por 16.11.2011 / 17:41
4

Após algumas pesquisas, eu poderia usá-lo desta maneira:

  1. Instale o Servidor Proxy de Autorização NTLM ou outro servidor proxy para NTLM, como o Cntlm. Pessoalmente, eu prefiro o servidor python, porque eu posso mexer com ele, e o desempenho não é um problema.

  2. Configure a configuração; note que no meu caso, eu tinha que habilitar o modo LM e NT, e eu suspeitava que fosse o caso normal, hoje em dia.

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

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

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

por 12.03.2012 / 10:56
3

O seguinte funcionou para mim.

No Windows 7:

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

Isso deve criar um arquivo chamado .npmrc na pasta C:/users/<username> .

    
por 13.06.2013 / 21:12
3

Digite isto na linha de comando:

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

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

NÃO SE ESQUEÇA DE INCLUIR HTTP: // antes do seu nome de usuário. Funcionou para mim.

    
por 04.09.2013 / 12:46
2

Esse problema foi resolvido depois de criar o arquivo .npmrc como acima, e depois executar o comando adduser e seguir os prompts do cmd.

npm adduser

Execute o seguinte comando para ver se você tem um nome de usuário autorizado:

npm whoami
    
por 02.05.2012 / 05:41
2

Cada uma das respostas acima precisa que o usuário escreva sua senha em um arquivo de texto ou em uma variável de ambiente.

Pessoalmente, não gostei de uma solução como essa, por sua abordagem insegura. Então eu tentei escrever um aplicativo que injeta o token Kerberos do usuário atual nas trocas entre o cliente (npm, bower, git) e o proxy. Dito isso, o Active Directory é apenas uma implementação proprietária do Kerberos.

Eu uso este software todos os dias, em um host do Windows 8.1. Você pode encontrar o código (golang) e os primeiros binários de versão no link .

    
por 03.05.2016 / 22:27
1

Todas 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
    
por 27.09.2013 / 08:46
1

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

proxy=http://domain%5Cusername:password@proxy_ip:port

isto é, (1) use %5C em vez de \ (como sugerido em outro lugar) e (2) use o endereço IP em vez do nome da máquina local para o servidor proxy.

    
por 18.06.2015 / 11:54
1

Você receberá o host e a porta do proxy do administrador ou do suporte do servidor.

Depois disso, configure

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

Se houver algum caractere especial na senha, tente com% urlencode. Por exemplo: - pound (hash) shuold deve ser substituído por% 23.

    
por 07.07.2015 / 23:58
0

A solução trabalhada para mim é a seguinte:

npm configuração de configuração http_proxy http: // nome_do_usuário : senha @ host / IP : porta

npm configuração config proxy http: // nome_do_usuário : senha @ host / IP : porta

substitua os parâmetros pelos valores, no meu caso

nome de usuário : (vazio)

password : (vazio)

host / IP : 192.36.36.110

port : 8080

então meus comandos são

npm config set http_proxy link

npm config set proxy link

    
por 22.02.2016 / 07:19
0

O CNTLM não funcionou para mim. Eu tentei todas as combinações possíveis. NPM estava dando erro de autenticação. O violinista veio para resgatar e salvou meu tempo. É fácil de instalar e configurar. Definir a regra do Fiddler para Autenticada automaticamente.No .npmrc, configure 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:)

    
por 29.04.2016 / 07:14
0

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

Eu não precisei inserir nenhum nome de usuário ou senha, simplesmente o URL do arquivo PAC.

    
por 08.01.2018 / 23:13

Tags