Lea acerca de una variable proxy en un .npmrc
archivo pero no funciona. Intentar evitar la descarga manual de todos los paquetes requeridos y la instalación.
266
Resolví este problema de esta manera:
Ejecuto este comando:
npm config set strict-ssl false
Luego configure npm para que se ejecute con http, en lugar de https:
npm config set registry "http://registry.npmjs.org/"
Luego instalo paquetes usando esta sintaxis:
npm --proxy http://username:[email protected]:80 install packagename
Omita la username:password
parte si el proxy no requiere que se autentique
EDITAR: Un amigo mío acaba de señalar que puede hacer que NPM funcione detrás de un proxy estableciendo AMBAS variables de entorno HTTP_PROXY y HTTPS_PROXY, y luego emitiendo normalmente el comando npm install express (por ejemplo)
EDIT2: Como comentó @BStruthers, tenga en cuenta que las contraseñas que contengan "@" no se analizarán correctamente, si contiene @ ponga la contraseña completa entre comillas
my@password
, su archivo .npmrc debería tenermy%40password
para la parte de contraseña. Ponerlo entre comillas funciona en algunos casos, pero codificarlo es infalible.npm
Proxy de configuraciónPara
HTTP
:Para
HTTPS
:use la dirección de proxy https si hay una
de lo contrario, reutilice la dirección proxy HTTP
Nota : El https-proxy no tiene
https
como protocolo, perohttp
.fuente
En caso de duda, pruebe todos estos comandos, como lo hago yo:
=======
ACTUALIZAR
¡Ponga su configuración en
~/.bashrc
o~/.bash_profile
para que no tenga que preocuparse por su configuración cada vez que abra una nueva ventana de terminal!Si su empresa es como la mía, tengo que cambiar mi contraseña con bastante frecuencia. Así que agregué lo siguiente en mi ~ / .bashrc o ~ / .bash_profile para que cada vez que abro una terminal, ¡sé que mi npm está actualizado!
Simplemente pegue el siguiente código en la parte inferior de su
~/.bashrc
archivo:Luego edite los campos "nombre de usuario", "contraseña" y "proxy" en el código que pegó.
Abrir una nueva terminal
Verifique su configuración ejecutando
npm config list
ycat ~/.npmrc
Intenta instalar tu módulo usando
npm install __
onpm --without-ssl --insecure install __
onpm --without-ssl --insecure --proxy http://username:password@proxy:8080 install __
.-g
fuente
npm config set registry http://registry.npmjs.org/
,npm config set proxy http://myusername:[email protected]:8080
,npm config set https-proxy http://myusername:[email protected]:8080
,npm config set strict-ssl false
para la configuración de la NGP y luego se instala el paquete usando NPMnpm --proxy http://myusername:[email protected]:8080 --without-ssl --insecure -g install {packagename}
. Gracias¿Has probado las opciones de línea de comandos en lugar del
.npmrc
archivo?Creo que algo así
npm --proxy http://proxy-server:8080/ install {package-name}
funcionó para mí.También he visto lo siguiente:
npm config set proxy http://proxy-server:8080/
fuente
Aunque ya hay muchos buenos consejos, para mi entorno (Windows 7, usando PowerShell) y la última versión disponible de node.js (v8.1.2) todo lo anterior no funcionó, excepto cuando seguí la configuración de brunowego .
Así que verifique su configuración con:
Configuraciones detrás de un proxy:
Espero que esto le ahorre tiempo a alguien
fuente
Esto funciona para mí en Windows:
Si no está en ningún dominio, use:
Si su contraseña contiene caracteres especiales como
"
,@
,:
y así sucesivamente, reemplazarlos por sus valores de URL codificada. Por ejemplo"
->%22
,@
->%40
,:
->%3A
.%5C
se usa para el personaje\
.fuente
encodeURIComponent("YourP@ssword")
para obtener la versión codificada de su contraseña.Para configurar el proxy http , establezca el indicador -g :
sudo npm config set proxy http://proxy_host:port -g
Para el proxy https, nuevamente asegúrese de que el indicador -g esté configurado:
sudo npm config set https-proxy http://proxy_host:port -g
fuente
fuente
Esto funcionó para mí
fuente
vim ~/.npmrc
en su máquina Linux y agregue lo siguiente. No olvide agregar unaregistry
parte ya que esto puede causar fallas en muchos casos.fuente
https-proxy=https://..
enhttps-proxy=http://..
Finalmente, he logrado resolver este problema detrás del proxy con autenticación AD. Tuve que ejecutar:
Es muy importante codificar en URL cualquier carácter especial como la barra diagonal inversa o # En mi caso, tuve que codificar
backshlash
con% 5C asídomain\user will
seadomain%5Cuser
#
firmar con%23%0A
contraseña comoPassword#2
seráPassword%23%0A2
También he agregado las siguientes configuraciones:
fuente
Aunque configuré proxy con config, el problema no se resolvió, pero después de que este funcionó para mí:
fuente
Probé todas estas opciones, pero mi proxy no tenía ninguna por alguna razón. Luego, nacido de la desesperación / desesperación, lo intenté al azar
curl
en mi caparazón de Git Bash, y funcionó.Desarmar todas las opciones de proxy usando
Y luego correr
npm install
en mi shell Git Bash funcionó perfectamente. No sé cómo está configurado correctamente para el proxy y elcmd
indicador de Windows no, pero funcionó.fuente
Esto resolvió mi problema.
fuente
Después de vincular diferentes respuestas finalmente, las primeras cuatro líneas de @Kayvar answers me ayudan a resolver el problema:
fuente
Esto funcionó para mí. Configure el proxy http y https.
fuente
Intenta encontrar .npmrc en C: \ Users \ .npmrc
luego abra (bloc de notas), escriba y guarde dentro:
PD: eliminar "<" y ">" por favor !!
fuente
Para mí, aunque Python, etc., funcionará, aunque nuestro proxy corporativo npm no lo haría.
Lo intenté
npm config set proxy http://proxyccc.xxx.ca:8080 npm config set https-proxy https://proxyccc.xxx.ca:8080 npm config set registry http://registry.npmjs.org/
según las instrucciones pero seguía recibiendo el mismo error.
Sólo cuando me quité
https-proxy https://proxyccc.xxx.ca:8080
del archivo .npmrc que la NGP instalar electrones --save-dev trabajófuente
https-proxy
probablemente no lo seahttps:
. Al menos, tener el mismo puerto para cada uno probablemente no sea correcto, pero creo que ambos probablemente tengan el mismo valor.En el sistema de Windows
Intente eliminar la configuración del proxy y del registro (si ya está configurada) y configure las variables de entorno en la línea de comandos a través de
luego intente ejecutar npm install. Con esto, no configurará el proxy en .npmrc pero para esa sesión funcionará.
fuente
SET HTTP_PROXY http://username:password@domain:port
pero cambiar aSET HTTP_PROXY=http://username:password@domain:port
parecía que todo funcionabaUtilice el siguiente comando en cmd o GIT Bash u otro indicador
$ npm config set proxy " http://192.168.1.101:4128 "
$ npm config set https-proxy " http://192.168.1.101:4128 "
donde 192.168.1.101 es proxy ip y 4128 es puerto. cambiar de acuerdo a su configuración de proxy. Funciona para mí.
fuente
Muchas aplicaciones (por ejemplo, npm) pueden usar la configuración de proxy de las variables de entorno del usuario.
Puede agregar a su entorno las siguientes variables HTTP_PROXY y HTTPS_PROXY que tendrán el mismo valor para cada una.
http: // usuario: contraseña @ proxy Dirección: proxyPort
Por ejemplo, si tiene Windows, puede agregar proxy de la siguiente manera:
fuente
En mi caso, olvidé establecer las direcciones proxy "http: //" en mis archivos de configuración (se pueden encontrar en C: \ Users \ [USERNAME] \ .npmrc). Entonces, en lugar de tener
yo tenía
Lo cual, por supuesto, no funcionó, pero los mensajes de error tampoco ayudaron mucho ...
fuente
Ha habido muchas respuestas anteriores para esta pregunta, pero ninguna de ellas funcionó para mí. Todos ellos mencionaron agregar un
http://
prefijo. Entonces lo agregué también. Todo falló.Finalmente funciona después de que accidentalmente eliminé el
http://
prefijo. La configuración final es así:No sé la lógica detrás de esto, pero funcionó. Si ninguna de las respuestas anteriores funciona para usted, tal vez pueda intentarlo de esta manera. Espero que este sea útil.
fuente
Hay buena información en la página de curl sobre SSL y problemas de certificados . Baso la mayor parte de mi respuesta en la información allí.
El uso de estruendo-ssl falso es una mala práctica y puede crear problemas. En cambio, lo que podemos hacer es agregar el certificado que se está inyectando, con el certificado "hombre en el medio".
Cómo resolver esto en Windows:
openssl x509 -inform DES -in **rootcert**.cer -out outcert.pem -text
donde rootcert es el nombre del archivo del certificado que guardó en el paso 5.
npm config set cafile **C:\Users\username\cacert.pem
donde C: \ Users \ username \ cacert.pem es la ruta del paso 10.
npm config set strict-ssl true
¡Uf! ¡Lo hicimos! Ahora npm puede entender cómo conectarse. La ventaja es que puedes decirle a curl que use el mismo cabundle.pem y también entenderá HTTPs.
fuente
Estos son los pasos que he seguido (Windows):
C:\Users\<WIN_USERNAME>\.npmrc
Exporte el certificado a su sistema de archivos desde la siguiente dirección: https://registry.npmjs.org
Navegue a la ubicación del certificado exportado y emita el siguiente comando:
npm config set cafile npm_certificate.cer
Agregue los siguientes cambios al archivo:
registry=https://registry.npmjs.org/ strict-ssl=false https-proxy=http://[proxy_user]:[proxy_password]@[proxy_ip]:[proxy_port]/ cafile=npm_certificate.cer
¡Ahora deberías estar listo!
fuente
Mi problema se redujo a un error tonto de mi parte. Como un día había dejado caer mis servidores proxy en un archivo * .bat de Windows (http_proxy, https_proxy y ftp_proxy), olvidé escapar de los caracteres especiales para el dominio \ usuario codificado en URL (% 5C) y la contraseña con el signo de interrogación '?' (% 3F). Es decir, una vez que tenga el comando codificado, no olvide escapar del '%' en el comando del archivo bat.
Cambié
a
Tal vez sea un caso marginal, pero espero que ayude a alguien.
fuente
cuando doy sin el prefijo http / http en la configuración del proxy, npm falló incluso cuando el host del proxy y el puerto eran valores correctos. Funcionó solo después de agregar el prefijo de protocolo.
fuente
Simplemente abra la nueva terminal y escriba
npm config edit
ynpm config -g edit
. Restablecer los valores predeterminados. Después de ese terminal cerrado, abra el nuevo y escribanpm --without-ssl --insecure --proxy http://username:password@proxy:8080 install <package>
si necesita globalmente solo agregue-g
.Funcionó para mí, espero que funcione para ti :)
fuente