npm e yarn atrás de um proxy
Redes corporativas quebram npm install de maneiras previsíveis. Aqui está como configurar npm e ambas as versões principais do yarn para instalar através de um proxy HTTP — além das variáveis de ambiente que toda a ferramenta Node compartilha.
npm, yarn e o proxy HTTP
Os gerenciadores de pacotes fazem o download via HTTPS, então eles precisam de um proxy HTTP CONNECT — que é exatamente o endpoint HTTP s4m na porta 3128. O npm mantém sua própria configuração, então definir as variáveis de ambiente do shell nem sempre é suficiente; geralmente você define tanto proxy quanto https-proxy na configuração do npm para que o tráfego do registro seja roteado. As duas gerações do Yarn diferem: o yarn clássico v1 lê suas próprias configurações de proxy / https-proxy (e em grande parte respeita as do npm), enquanto o Yarn Berry (v2+) usa as chaves httpProxy e httpsProxy em .yarnrc.yml.
Em todos eles, as variáveis de ambiente padrão http_proxy, https_proxy e no_proxy também são respeitadas, que é a maneira mais rápida de corrigir uma única instalação npm em uma máquina restrita. Com o s4m você se autentica com USER:PASS contra proxy.s4m.online:3128. Veja a página do proxy e o guia de variáveis de ambiente compartilhadas; o guia irmão pip e conda cobre o equivalente em Python.
Configure npm, yarn v1 e Berry
Configuração persistente para cada ferramenta mais a opção de variável de ambiente. Substitua USER:PASS antes de executar.
# --- npm: persistent config (writes to ~/.npmrc) --- npm config set proxy http://USER:PASS@proxy.s4m.online:3128 npm config set https-proxy http://USER:PASS@proxy.s4m.online:3128 npm config set noproxy localhost,127.0.0.1,.internal npm install # To undo later: # npm config delete proxy && npm config delete https-proxy # --- yarn v1 (classic) --- yarn config set proxy http://USER:PASS@proxy.s4m.online:3128 yarn config set https-proxy http://USER:PASS@proxy.s4m.online:3128 # --- Yarn Berry (v2+): .yarnrc.yml --- cat >> .yarnrc.yml <<'YML' httpProxy: "http://USER:PASS@proxy.s4m.online:3128" httpsProxy: "http://USER:PASS@proxy.s4m.online:3128" YML # --- Environment variables: quickest one-off fix --- export https_proxy="http://USER:PASS@proxy.s4m.online:3128" export http_proxy="http://USER:PASS@proxy.s4m.online:3128" export no_proxy="localhost,127.0.0.1,.internal" npm install
Corrija npm install atrás de um proxy
A ordem para tentar as coisas quando as instalações estão expirando.
Confirme que é o proxy
Execute npm install -ddd (ou com --verbose) e procure por ETIMEDOUT ou ECONNREFUSED para o registro — isso aponta para uma conexão de saída bloqueada que precisa de um proxy.
Defina proxy npm e https-proxy
Use npm config set para tanto proxy quanto https-proxy apontando para http://USER:PASS@proxy.s4m.online:3128. O tráfego do Registro é HTTPS, então https-proxy é o que geralmente importa.
Combine sua versão do yarn
Para yarn v1 use yarn config set; para Yarn Berry adicione httpProxy e httpsProxy ao .yarnrc.yml. Não misture os dois estilos de configuração.
Adicione noproxy para registros internos
Se você também usar um registro privado na LAN, adicione seu host a noproxy / no_proxy para que seja acessado diretamente em vez de através do proxy externo.
Auth, registros privados e armadilhas
Duas coisas quebram instalações mesmo após o proxy ser configurado. Primeiro, caracteres especiais na senha: se contiver @, : ou #, codifique-os em URL (por exemplo, @ se torna %40) ou a configuração analisa a URL incorretamente. Segundo, uma mistura de registros públicos e privados: coloque qualquer host de registro interno em noproxy para que seja acessado diretamente, enquanto o registro público do npm passa pelo proxy.
O endpoint HTTP do s4m é um proxy de datacenter autenticado, pago conforme o uso — uma combinação ideal para runners de CI e máquinas de desenvolvedor que precisam acessar o npm de trás de uma saída controlada. Não é um proxy residencial e não é um cache de pacotes; para instalações offline, use um espelho de registro real. Quando seu CI precisa de um único IP de saída permitido, adicione um IP pessoal dedicado. Um 407 significa credenciais inválidas — veja o guia 407. O mesmo endpoint alimenta pip/conda e Docker; valide-o com as ferramentas.
Perguntas, respondidas
Por que o npm install fica travado ou expira atrás de um proxy?
O registro é acessado via HTTPS e sua conexão de saída está bloqueada. Defina o proxy do npm e https-proxy (e/ou as variáveis de ambiente http_proxy/https_proxy) para rotear através de http://USER:PASS@proxy.s4m.online:3128.
Como configuro o Yarn Berry em comparação com o yarn v1?
Yarn v1 usa yarn config set proxy / https-proxy. Yarn Berry (v2+) usa chaves httpProxy e httpsProxy em .yarnrc.yml. Use um estilo por projeto; não misture-os.
Minha senha tem caracteres especiais e o proxy falha — por quê?
npm analisa o valor do proxy como uma URL, então caracteres como @, : ou # na senha devem ser codificados em URL (por exemplo, @ se torna %40). Após a codificação, as credenciais são analisadas corretamente.
Como mantenho um registro interno fora do proxy?
Adicione o nome do host do registro interno à lista noproxy (npm) ou no_proxy (env). Esse host é então acessado diretamente enquanto o tráfego do registro público ainda passa pelo proxy.
Desbloqueie suas instalações do Node
Roteie npm e yarn através do endpoint HTTP autenticado em proxy.s4m.online:3128. Pagamento por uso, com um IP dedicado quando o CI precisa de uma saída permitida.
As pessoas encontraram esta página pesquisando por
- npm e yarn atrás de um proxy
- curl com um proxy SOCKS5
- como verificar npm e yarn atrás de um proxy
- npm e yarn atrás de um proxy para scraping
- Configurações de npm e yarn atrás de um proxy
- métodos de autenticação SOCKS5 (RFC 1929)
- interruptor de desligamento vpn tutorial
- proxy http com pagamento em cripto
- como configurar wireguard
- openvpn
- wireguard
- VPN e proxy FAQ
Frases de busca reais que esta página responde — os links abrem a página que as cobre em profundidade.