Necesito descargar varios paquetes a través de npm pero nuestra configuración de proxy corporativo es un archivo .pac (estoy en Windows)
Ya lo he intentado
npm config set proxy http://mydomain\username:[email protected]:8181/proxy.pac
npm config set https-proxy http://mydomain\username:[email protected]:8181/proxy.pac
o
npm config set proxy http://1.2.3.4:8181/proxy.pac
npm config set https-proxy http://1.2.3.4:8181/proxy.pac
pero no funciona ...
¿cualquier sugerencia? Gracias
proxy.pac
archivo para obtener una dirección proxy. (En mi caso, simplemente tuve que cambiar el puerto a 8080).Respuestas:
Acabo de tener un problema muy similar, donde no pude hacer que npm funcione detrás de nuestro servidor proxy.
Mi nombre de usuario tiene la forma "dominio \ nombre de usuario", incluida la barra oblicua en la configuración del proxy que resultó en una barra diagonal. Entonces entrando en esto:
luego de ejecutar esto
npm config get proxy
devuelve esto: http: // dominio / nombre de usuario: contraseña @ nombre del servidor: puerto /Por lo tanto, para solucionar el problema, en su lugar, URL codificó la barra diagonal inversa, así que ingresé esto:
y con esto se solucionó el acceso proxy.
fuente
strict-ssl=false
al.npmrc
archivo de configuración resuelto para mí detrás de un proxy corporativo - vea las respuestas de @ ovidiu-buligan y @ karthikeyan-aBusque la url del
pac
archivo en la configuración de LAN de Internet Explorer y descargue el archivo pac desde la URL configurada. El archivo pac es solo un archivo javascript con una función denominadaFindProxyForURL
que devuelve diferentes hosts proxy en diferentes escenarios.Intente encontrar un host en ese archivo pac que cree que es para el tráfico web general y conéctelo a .npmrc en
C:\Users\<username>\.npmrc
Aunque puede iniciar sesión con su dominio y nombre de usuario en su máquina corporativa, es muy posible que el nombre de dominio del directorio activo del usuario no sea necesario para el proxy , solo el nombre de usuario y la contraseña (que pueden ser diferentes a su inicio de sesión de Active Directory)
No olvides jugar con caracteres de contraseña especiales de escape.
fuente
Descargue su
.pac
archivo. Ábralo en cualquier editor y búsqueloPROXY = "PROXY X.X.X.X:80;
. Es posible que tenga muchos servidores proxy, copie cualquiera de ellos y ejecute los siguientes comandos de terminal:¡Ahora debería poder instalar cualquier paquete!
fuente
git config --global http.proxy http://X.X.X.X:80
git config --global https.proxy http://X.X.X.X:80
Resolví este problema de esta manera:
1) Ejecuto este comando:
npm config set strict-ssl false
2) Luego configure npm para que se ejecute con http, en lugar de https:
npm config set registry "http://registry.npmjs.org/"
3) Luego instala tu paquete
npm install <package name>
fuente
ca[]
propiedad en npm.Para ampliar la respuesta de @Steve Roberts.
También tuve que codificar mi
domain\user
cadena en URL , sin embargo, tengo un espacio dentro de mi nombre de usuario, así que puse un+
para codificar la codificación de la URL del espacio, pero se codificó doble como%2B
(que es la codificación de URL para el signo más, sin embargo, la URL codificar para un espacio es%20
), así que tuve que hacer lo siguiente:comando npm
solución de problemas de configuración npm
Utilicé el
npm config list
para obtener los valores analizados que había establecido anteriormente, y así es como descubrí la codificación doble. Extraño.Esencialmente, debe resolver los siguientes requisitos:
DOMAIN
requiere una cadena para la autenticación?Saludos.
VARIABLES DE ENTORNO DE WINDOWS (Aviso CMD)
Actualizar
Resulta que incluso con las configuraciones anteriores, todavía tuve algunos problemas con algunos paquetes / scripts que usan Solicitud - Cliente HTTP simplificado internamente para descargar cosas. Entonces, como se explica en el archivo Léame anterior, podemos especificar variables de entorno para establecer el proxy en la línea de comando, y Request respetará esos valores.
Luego, después (y soy reacio a admitir esto) varios intentos (más como días), de tratar de establecer las variables de entorno, finalmente logré las siguientes pautas:
cntlm
Utilicé la técnica anterior durante algunas semanas, hasta que me di cuenta de la sobrecarga de actualizar mi contraseña en todas las herramientas que necesitaban la configuración del proxy.
Además de npm, también uso:
Pasos de configuración de cntlm
Entonces, instalé cntlm . La configuración
cntlm
es bastante sencilla, busca el archivo ini @C:\Program Files\Cntlm\cntlm.ini
C:\Program Files\Cntlm\cntlm.ini
(puede que necesite derechos de administrador)Username
yDomain
líneas (línea 8-9 creo)En cmd prompt run:
El resultado que obtenga
cntlm -H
se verá más o menos así:#
línea anteriorPassLM
yPassNT
no los usecntlm -H
la ini reemplazar las líneas paraPassLM
,PassNT
yPassNTMLv2
, o comentar las líneas originales y añadir la suya.Proxy
servidores. Si no sabe qué es el servidor proxy ... Haga lo que hice, busqué mi archivo de configuración automática de proxy buscando laAutoConfigURL
clave del Registro enHKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings
. Navegue a esa URL y mire a través del código que resulta ser JavaScript.Listen ####
línea, donde####
está el número de puerto.Configurar NPM con cntlm
Entonces, apuntas npm a tu proxy cntml, puedes usar la ip, yo usé
localhost
y el puerto predeterminado para cntlm3128
para que mi url proxy se vea asíCon el comando adecuado:
Es mucho más simple Configura todas sus herramientas con la misma URL y solo actualiza la contraseña en un lugar. La vida es mucho más simple, no.
Debe configurar el certificado npm CA
De la documentación npm ca
Si su proxy corporativo está interceptando conexiones https con su propio certificado autofirmado, esto es imprescindible para evitar
(gran no-no).npm config set strict-ssl false
Pasos básicos
\n
.npmrc
agregar una líneaca[]="-----BEGIN CERTIFICATE-----\nXXXX\nXXXX\n-----END CERTIFICATE-----"
Cuestiones
He notado que a veces npm se cuelga, así que detengo (a veces con fuerza) cntlm y lo reinicio.
fuente
Me encontré con varios problemas con esto y finalmente lo que hice es lo siguiente:
En las reglas personalizadas de Fiddler, agregué
Finalmente en npm configuré el proxy en http: // localhost: 8888
Esto funcionó bien.
fuente
"domain\\username:password"
puede representar una amenaza de seguridad para el robo de identidad. En cambio, usar la"(default)"
configuración en las reglas personalizadas funcionó de manera encantadora. Fiddler debe estar ejecutándose mientras usa "npm" para que esto funcione.Para cualquiera que tenga problemas con un firewall corporativo, así como problemas con SSL (no puede obtener el certificado de emisor local), aquí hay algunos pasos que puede probar:
Olvídate de SSL
Si no le preocupa SSL, puede seguir los consejos de muchos contribuyentes anteriores configurando sus servidores proxy y cambiando el registro a la versión no segura:
Un "truco" rápido aquí, mis credenciales de proxy son las mismas para solicitudes seguras y no seguras (observe cómo dejé mi protocolo como http: // para la configuración https-proxy ). Esto puede ser lo mismo para usted, y puede que no.
Quiero mantener SSL
Si desea conservar SSL y no desea utilizarlo
strict-ssl=false
, entonces tiene más trabajo por hacer. Para mí, estoy detrás de un firewall corporativo y estamos usando certificados autofirmados, así que recibo el errorunable to get local issuer certificate
. Si está en el mismo barco que yo, deberá configurar lacafile=
opción en el archivo de configuración npm. Primero, debe crear un archivo PEM que contenga información sobre sus certificados autofirmados. Si no sabe cómo hacerlo, aquí hay instrucciones para un entorno Windows sin utilizar software de terceros:Necesitamos indicar explícitamente en qué certificados se debe confiar porque estamos usando certificados autofirmados. Para mi ejemplo, navegué a www.google.com usando Chrome para poder obtener los certificados.
En Chrome, vaya a Inspeccionar -> Seguridad -> Ver certificado. Verá todos los certificados que permiten la conexión SSL. Observe cómo estos certificados son autofirmados. La parte borrosa es mi compañía, y no somos una Autoridad Certificada. Puede exportar la ruta completa del certificado como un archivo P7B, o puede exportar los certificados individualmente como archivos CER (codificación base64). Exportar la ruta completa como P7B no le hace mucho bien porque a su vez tendrá que abrir este archivo en un administrador de certificados y exportar como archivos CER individuales de todos modos. En Windows, al hacer doble clic en el archivo P7B, se abrirá la aplicación Administrador de certificados.
Exportar como CER (Base 64) es realmente un archivo de texto en el siguiente formato:
Para crear nuestro archivo PEM, simplemente necesitamos apilar estos certificados uno encima del otro en un solo archivo y cambiar la extensión a .pem. Usé el bloc de notas para hacer esto.
Apila los certificados en orden inverso desde la ruta del certificado. Así que arriba, comenzaría con * .google.com y luego pegaría Websense debajo de él, luego emitiría CA 1, etc. De esta manera, los certificados se analizan de arriba a abajo buscando la CA raíz apropiada. Simplemente incluir la CA raíz no funcionará, pero tampoco necesitamos incluir todos los certificados. De la ruta anterior, solo necesito incluir aquellos certificados que vienen antes del certificado de Websense (Emisión de CA 1, Política CA, CA raíz).
Una vez que estos certificados autofirmados se guardan en un archivo PEM, estamos listos para indicarle a npm que use estos certificados como nuestra CA confiable. Simplemente configure el archivo de configuración y debería estar listo para comenzar:
Ahora, con sus proxies configurados (http y https), y el registro configurado en
https://registry.npmjs.org
, debería poder instalar paquetes detrás de un firewall corporativo con certificados autofirmados sin modificar lastrict-ssl
configuración.fuente
Puede verificar Fiddler si NPM está dando un error de autenticación. Es fácil de instalar y configurar. Establezca la regla del violinista en autenticado automáticamente. En .npmrc establezca estas propiedades
Funcionó para mí :)
fuente
Pruebe esto, configure el proxy en npm de la siguiente manera
fuente
Obtendrá el host proxy y el puerto del administrador o soporte de su servidor.
Después de eso configurar
Si hay algún carácter especial en la contraseña, intente con% urlencode. Por ejemplo: - la libra (hash) debe reemplazarse por% 23.
Esto funcionó para mí ...
fuente
Simplemente cree un archivo llamado .npmrc en la carpeta de su proyecto, evitará la configuración del proxy a nivel del sistema
Comenta así si no usas el proxy
fuente
Ninguna de las respuestas existentes explican cómo usar npm con un archivo PAC. Algunos sugieren descargar el archivo PAC, inspeccionarlo manualmente y elegir una de las cadenas "PROXY ...". Pero esto no funciona si el archivo PAC necesita elegir entre varios servidores proxy o si el archivo PAC contiene una lógica compleja para omitir servidores proxy para ciertas URL.
Además, algunos proxies corporativos requieren autenticación NTLM. CNTLM puede manejar la autenticación, pero no admite archivos PAC.
Una alternativa es utilizar Alpaca , que ejecuta el archivo PAC en una máquina virtual JavaScript y realiza la autenticación NTLM con el proxy resultante.
fuente
Si está detrás de una red corporativa con proxy, acabo de usar una herramienta de proxy ntlm y usé el puerto y el proxy provistos por ntlm, por instinto usé esta configuración:
Espero que esto ayude.
fuente
Utilice el siguiente comando en cmd o GIT Bash u otro indicador
donde 192.168.1.101 es proxy ip y 4128 es puerto. cambie de acuerdo con su configuración de proxy.
fuente
Debe usar "npm config set http-proxy "
utilizar:
fuente
En el trabajo usamos ZScaler como nuestro proxy. La única forma en que pude hacer que npm funcionara fue usando Cntlm .
Ver esta respuesta:
NPM detrás del proxy NTLM
fuente
Prueba esto, fue lo único que funcionó para mí:
npm --proxy http: //: @proxyhost: --https-proxy http: //: @proxyhost: --strict-ssl false install -g package
Presta atención a la opción --strict-ssl false
Buena suerte.
fuente
La configuración del proxy NPM mencionada en la respuesta aceptada resuelve el problema, pero como puede ver en este problema de npm , algunas dependencias usan GIT y eso hace que la configuración del proxy git sea necesaria , y se puede hacer de la siguiente manera:
La configuración del proxy NPM mencionó:
fuente
Tuve un problema similar y probé todas las soluciones anteriores, pero ninguna funcionó para mí (estaba usando caracteres especiales (como el símbolo '@') en mi contraseña y también necesitaba agregar un nombre de dominio).
Aparte de eso, estaba un poco aprensivo para agregar mi contraseña como texto sin formato. Resultó que la solución más fácil para superar todos estos desafíos era usar algún tipo de proxy inverso (como Fiddler).
Ya he detallado los pasos de configuración en esta respuesta en SO.
fuente
Agregar las líneas a continuación en el archivo .typingsrc me ayudó.
fuente
Me encontré con un problema similar y descubrí que mi archivo de configuración npm (.npmrc) tiene una entrada de registro incorrecta. comentó y volvió a ejecutar npm install. funcionó.
fuente
SO: Windows 7
Pasos que me funcionaron:
npm config get proxy
npm config get https-proxy
Comentarios: ejecuté este comando para conocer mi configuración de proxy
npm config rm proxy
npm config rm https-proxy
npm config set registry=http://registry.npmjs.org/
npm install
fuente
Debido a que todavía tengo problemas para establecer la configuración del proxy en el trabajo y desactivarla en casa, he escrito y publicado npm-corpo-proxy.sh . En cada corporación, la contraseña debe cambiarse con frecuencia y debe contener caracteres especiales, que deben codificarse antes de alimentar npm config (lo mismo para el dominio de forma de retroceso \ usuario).
fuente
De una pequeña búsqueda en Google, lo primero que probé fue esto
Pero aún así, npm parecía perder la conexión al intentar hacer "npm install" s. luego ejecuté esta línea en el símbolo del sistema y ahora puedo usar npm install
fuente
No pude hacerlo funcionar con el CNTLM. Intenté seguir toda la información publicada anteriormente, pero el proxy aún no autorizó la conexión. Con Fiddler, solo tiene que instalarlo y marcar la opción Autenticado automáticamente. Pero para trabajar, tuve que eliminar el archivo .npmrc de mi carpeta de usuario y establecer las variables de entorno como se indica aquí , con estos valores:
fuente