npm tem configurações separadas proxy e https-proxy. A diferença é o destino solicitado. Para um proxy HTTP comum que cria túneis HTTPS, os dois valores podem apontar para o mesmo endpoint http://.

Um .npmrc de projeto pode conter:

proxy=http://203.0.113.10:8080
https-proxy=http://203.0.113.10:8080
noproxy=localhost,127.0.0.1,registry.example.internal

Substitua o endpoint de documentação pelo seu proxy; para testes permitidos de registro público, a lista de proxies HTTP fornece candidatos HTTP. A última linha deixa deliberadamente o registro interno indicado em acesso direto. Ela não é outro endereço de proxy.

Peça ao npm para fazer uma requisição

Uma instalação pelo cache é um teste ruim de rota: npm pode já ter tudo de que precisa. Um ping no registro é uma verificação menor:

npm ping --registry=https://registry.npmjs.org/

A conclusão bem-sucedida mostra que essa execução do npm alcançou a rota daquele registro. Não comprova que todo host de tarball, dependência Git ou processo separado de gerenciador de pacotes use o mesmo caminho.

Para localizar uma configuração conflitante, confira os valores efetivos em vez de editar mais arquivos imediatamente:

npm config get proxy
npm config get https-proxy
npm config get noproxy

Esses comandos podem imprimir credenciais se elas estiverem em uma URL. Confira a saída localmente em vez de colá-la sem alterações em um relato de problema.

O .npmrc de projeto não é usado em instalações globais. Se apenas npm install -g falhar, confira a configuração efetiva dessa execução em vez de presumir que ela leu o arquivo do projeto.

Confira as exclusões antes de trocar o IP

npm também usa variáveis de ambiente de proxy, e a configuração noproxy pode vir de NO_PROXY. Um destino excluído pela configuração efetiva pode se conectar diretamente mesmo com um valor de proxy. Por outro lado, apagar uma linha de um .npmrc não remove uma variável de ambiente herdada.

Trate erros de certificado separadamente

Um proxy de inspeção autorizado pode exigir uma CA da organização em que sua configuração Node/npm ainda não confia. npm aceita um arquivo CA:

cafile=/path/to/approved-ca-bundle.pem
strict-ssl=true

Use o pacote aprovado real para aquele ambiente. Definir strict-ssl=false enfraquece a verificação de certificados; não substitui a escolha do proxy ou do material de confiança correto.

Ao terminar os testes, remova as sobreposições de projeto que você acrescentou e confira os valores efetivos novamente. Isso permite herdar a configuração anterior sem mudar outros projetos na mesma máquina.

Artigos relacionados