npm y yarn detrás de un proxy
Las redes corporativas rompen npm install de maneras predecibles. Aquí está cómo configurar npm y ambas versiones principales de yarn para instalar a través de un proxy HTTP — además de las variables de entorno que toda la cadena de herramientas de Node comparte.
npm, yarn y el proxy HTTP
Los gestores de paquetes descargan a través de HTTPS, por lo que necesitan un proxy HTTP CONNECT — que es exactamente el endpoint HTTP s4m en el puerto 3128. npm mantiene su propia configuración, por lo que establecer las variables de entorno del shell no siempre es suficiente; generalmente se configuran tanto proxy como https-proxy en la configuración de npm para que el tráfico del registro sea dirigido. Las dos generaciones de Yarn difieren: el yarn clásico v1 lee su propia configuración de proxy / https-proxy (y en gran medida respeta la de npm), mientras que Yarn Berry (v2+) utiliza las claves httpProxy y httpsProxy en .yarnrc.yml.
En todos ellos, también se respetan las variables de entorno estándar http_proxy, https_proxy y no_proxy, que es la forma más rápida de solucionar una instalación única de npm install en una máquina restringida. Con s4m te autenticas con USER:PASS contra proxy.s4m.online:3128. Consulta la página del proxy y la guía compartida de variables de entorno; la guía hermana de pip y conda cubre el equivalente en Python.
Configura npm, yarn v1 y Berry
Configuración persistente para cada herramienta más la opción de variable de entorno. Reemplaza USER:PASS antes de ejecutar.
# --- 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
Arreglar npm install detrás de un proxy
El orden para probar cosas cuando las instalaciones están agotando el tiempo.
Confirma que es el proxy
Ejecuta npm install -ddd (o con --verbose) y busca ETIMEDOUT o ECONNREFUSED en el registro — eso apunta a una conexión saliente bloqueada que necesita un proxy.
Establecer proxy npm y https-proxy
Utilice npm config set para tanto proxy como https-proxy apuntando a http://USER:PASS@proxy.s4m.online:3128. El tráfico del registro es HTTPS, por lo que https-proxy es el que generalmente importa.
Ajusta tu versión de yarn
Para yarn v1 usa yarn config set; para Yarn Berry agrega httpProxy y httpsProxy a .yarnrc.yml. No mezcles los dos estilos de configuración.
Agregar noproxy para registros internos
Si también usas un registro privado en la LAN, agrega su host a noproxy / no_proxy para que se acceda directamente en lugar de a través del proxy externo.
Autenticación, registros privados y sorpresas
Dos cosas rompen las instalaciones incluso después de que se establece el proxy. Primero, caracteres especiales en la contraseña: si contiene @, : o #, codifícalos en URL (por ejemplo, @ se convierte en %40) o la configuración analiza la URL incorrectamente. Segundo, una mezcla de registros públicos y privados: coloca cualquier host de registro interno en noproxy para que se acceda directamente, mientras que el registro público de npm pasa a través del proxy.
El punto final HTTP de s4m es un proxy de centro de datos autenticado, con pago por uso — una opción limpia para los ejecutores de CI y las máquinas de desarrollo que deben acceder a npm desde detrás de una salida controlada. No es un proxy residencial y no es un caché de paquetes; para instalaciones fuera de línea utiliza un espejo de registro real. Cuando tu CI necesita una única IP de salida permitida, añade una IP personal dedicada. Un 407 significa credenciales incorrectas — consulta la guía 407. El mismo punto final alimenta pip/conda y Docker; valídalo con las herramientas.
Preguntas, respondidas
¿Por qué npm install se queda colgado o se agota detrás de un proxy?
El registro se alcanza a través de HTTPS y tu conexión saliente está bloqueada. Establece el proxy de npm y https-proxy (y/o las variables de entorno http_proxy/https_proxy) para enrutar a través de http://USER:PASS@proxy.s4m.online:3128.
¿Cómo configuro Yarn Berry frente a yarn v1?
Yarn v1 utiliza yarn config set proxy / https-proxy. Yarn Berry (v2+) utiliza las claves httpProxy y httpsProxy en .yarnrc.yml. Usa un estilo por proyecto; no los mezcles.
Mi contraseña tiene caracteres especiales y el proxy falla, ¿por qué?
npm analiza el valor del proxy como una URL, por lo que caracteres como @, : o # en la contraseña deben estar codificados en URL (por ejemplo, @ se convierte en %40). Después de la codificación, las credenciales se analizan correctamente.
¿Cómo mantengo un registro interno fuera del proxy?
Agrega el nombre de host del registro interno a la lista de noproxy (npm) o no_proxy (env). Ese host se alcanza directamente mientras el tráfico del registro público sigue pasando por el proxy.
Desbloquea tus instalaciones de Node
Rutea npm y yarn a través del punto final HTTP autenticado en proxy.s4m.online:3128. Pago por uso, con una IP dedicada cuando CI necesita una salida permitida.
Las personas encontraron esta página buscando
- npm y yarn detrás de un proxy
- curl con un proxy SOCKS5
- gratuito configuración de proxy
- configuración de proxy
- es proxy socks5 seguro
- métodos de autenticación SOCKS5 (RFC 1929)
- proxy socks5
- proxy http
- proxy para scraping para negocios
- interruptor de apagado de VPN tutorial
- Configuraciones de dirección IP
- VPN y proxy FAQ
Frases de búsqueda reales que esta página responde — los enlaces abren la página que las cubre en profundidad.