Respuestas:
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:password@cacheaddress.com.br: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 tener my%40password
para la parte de contraseña. Ponerlo entre comillas funciona en algunos casos, pero codificarlo es infalible.
npm
Proxy de configuración
Para HTTP
:
npm config set proxy http://proxy_host:port
Para HTTPS
:
use la dirección de proxy https si hay una
npm config set https-proxy https://proxy.company.com:8080
de lo contrario, reutilice la dirección proxy HTTP
npm config set https-proxy http://proxy.company.com:8080
Nota : El https-proxy no tiene https
como protocolo, pero http
.
En caso de duda, pruebe todos estos comandos, como lo hago yo:
npm config set registry http://registry.npmjs.org/
npm config set proxy http://myusername:mypassword@proxy.us.somecompany:8080
npm config set https-proxy http://myusername:mypassword@proxy.us.somecompany:8080
npm config set strict-ssl false
set HTTPS_PROXY=http://myusername:mypassword@proxy.us.somecompany:8080
set HTTP_PROXY=http://myusername:mypassword@proxy.us.somecompany:8080
export HTTPS_PROXY=http://myusername:mypassword@proxy.us.somecompany:8080
export HTTP_PROXY=http://myusername:mypassword@proxy.us.somecompany:8080
export http_proxy=http://myusername:mypassword@proxy.us.somecompany:8080
npm --proxy http://myusername:mypassword@proxy.us.somecompany:8080 \
--without-ssl --insecure -g install
=======
¡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:
######################
# User Variables (Edit These!)
######################
username="myusername"
password="mypassword"
proxy="mycompany:8080"
######################
# Environement Variables
# (npm does use these variables, and they are vital to lots of applications)
######################
export HTTPS_PROXY="http://$username:$password@$proxy"
export HTTP_PROXY="http://$username:$password@$proxy"
export http_proxy="http://$username:$password@$proxy"
export https_proxy="http://$username:$password@$proxy"
export all_proxy="http://$username:$password@$proxy"
export ftp_proxy="http://$username:$password@$proxy"
export dns_proxy="http://$username:$password@$proxy"
export rsync_proxy="http://$username:$password@$proxy"
export no_proxy="127.0.0.10/8, localhost, 10.0.0.0/8, 172.16.0.0/12, 192.168.0.0/16"
######################
# npm Settings
######################
npm config set registry http://registry.npmjs.org/
npm config set proxy "http://$username:$password@$proxy"
npm config set https-proxy "http://$username:$password@$proxy"
npm config set strict-ssl false
echo "registry=http://registry.npmjs.org/" > ~/.npmrc
echo "proxy=http://$username:$password@$proxy" >> ~/.npmrc
echo "strict-ssl=false" >> ~/.npmrc
echo "http-proxy=http://$username:$password@$proxy" >> ~/.npmrc
echo "http_proxy=http://$username:$password@$proxy" >> ~/.npmrc
echo "https_proxy=http://$username:$password@$proxy" >> ~/.npmrc
echo "https-proxy=http://$username:$password@$proxy" >> ~/.npmrc
######################
# WGET SETTINGS
# (Bonus Settings! Not required for npm to work, but needed for lots of other programs)
######################
echo "https_proxy = http://$username:$password@$proxy/" > ~/.wgetrc
echo "http_proxy = http://$username:$password@$proxy/" >> ~/.wgetrc
echo "ftp_proxy = http://$username:$password@$proxy/" >> ~/.wgetrc
echo "use_proxy = on" >> ~/.wgetrc
######################
# CURL SETTINGS
# (Bonus Settings! Not required for npm to work, but needed for lots of other programs)
######################
echo "proxy=http://$username:$password@$proxy" > ~/.curlrc
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 __
o npm --without-ssl --insecure install __
o npm --without-ssl --insecure --proxy http://username:password@proxy:8080 install __
.-g
npm config set registry http://registry.npmjs.org/
, npm config set proxy http://myusername:mypassword@proxy.us.somecompany:8080
, npm config set https-proxy http://myusername:mypassword@proxy.us.somecompany:8080
, npm config set strict-ssl false
para la configuración de la NGP y luego se instala el paquete usando NPM npm --proxy http://myusername:mypassword@proxy.us.somecompany: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/
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:
npm config list
Configuraciones detrás de un proxy:
npm config set registry http://registry.npmjs.org/
npm config set http-proxy http://username:password@ip:port
npm config set https-proxy http://username:password@ip:port
npm config set proxy http://username:password@ip:port
npm set strict-ssl false
Espero que esto le ahorre tiempo a alguien
Esto funciona para mí en Windows:
npm config set proxy http://domain%5Cuser:pass@host:port
Si no está en ningún dominio, use:
npm config set proxy http://user:pass@host:port
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 \
.
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
$ npm config set proxy http://login:pass@host:port
$ npm config set https-proxy http://login:pass@host:port
Esto funcionó para mí
npm config set proxy http://proxy.company.com:8080
npm config set https-proxy http://proxy.company.com:8080
npm set strict-ssl=false
vim ~/.npmrc
en su máquina Linux y agregue lo siguiente. No olvide agregar una registry
parte ya que esto puede causar fallas en muchos casos.
proxy=http://<proxy-url>:<port>
https-proxy=https://<proxy-url>:<port>
registry=http://registry.npmjs.org/
https-proxy=https://..
enhttps-proxy=http://..
Finalmente, he logrado resolver este problema detrás del proxy con autenticación AD. Tuve que ejecutar:
npm config set proxy http://domain%5Cuser:password@proxy:port/
npm config set https-proxy http://domain%5Cuser:password@proxy:port/
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 como Password#2
seráPassword%23%0A2
También he agregado las siguientes configuraciones:
npm config set strict-ssl false
npm config set registry http://registry.npmjs.org/
Aunque configuré proxy con config, el problema no se resolvió, pero después de que este funcionó para mí:
npm --https-proxy http://XX.AA.AA.BB:8080 instalar cordova-plugins
npm --proxy http://XX.AA.AA.BB:8080 instalar
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
npm config rm proxy
npm config rm https-proxy
Y luego correr npm install
en mi shell Git Bash funcionó perfectamente. No sé cómo está configurado correctamente para el proxy y el cmd
indicador de Windows no, pero funcionó.
npm config set proxy <http://...>:<port_number>
npm config set registry http://registry.npmjs.org/
Esto resolvió mi problema.
Después de vincular diferentes respuestas finalmente, las primeras cuatro líneas de @Kayvar answers me ayudan a resolver el problema:
npm config set registry http://registry.npmjs.org/
npm config set proxy http://myusername:mypassword@proxy.us.somecompany:8080
npm config set https-proxy http://myusername:mypassword@proxy.us.somecompany:8080
npm config set strict-ssl false
Esto funcionó para mí. Configure el proxy http y https.
Intenta encontrar .npmrc en C: \ Users \ .npmrc
luego abra (bloc de notas), escriba y guarde dentro:
proxy=http://<username>:<pass>@<proxyhost>:<port>
PD: eliminar "<" y ">" por favor !!
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ó
https-proxy
probablemente no lo sea https:
. 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
SET HTTP_PROXY=http://username:password@domain:port
SET HTTPS_PROXY=http://username:password@domain:port
luego intente ejecutar npm install. Con esto, no configurará el proxy en .npmrc pero para esa sesión funcionará.
SET HTTP_PROXY http://username:password@domain:port
pero cambiar a SET HTTP_PROXY=http://username:password@domain:port
parecía que todo funcionaba
Utilice 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í.
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:
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
proxy=http://[IPADDRESS]:[PORTNUMBER]
https-proxy=http://[IPADDRESS]:[PORTNUMBER]
yo tenía
proxy=[IPADDRESS]:[PORTNUMBER]
https-proxy=[IPADDRESS]:[PORTNUMBER]
Lo cual, por supuesto, no funcionó, pero los mensajes de error tampoco ayudaron mucho ...
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í:
npm config set registry http://registry.npmjs.org/
npm config set http-proxy ip:port
npm config set https-proxy ip:port
npm config set proxy ip:port
npm set strict-ssl false
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.
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
npm config set cafile **C:\Users\username\cacert.pem
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.
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!
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é
set http_proxy=http://domain%5Cuser:password%3F@myproxy:8080
a
set http_proxy=http://domain%%5Cuser:password%%3F@myproxy:8080
Tal vez sea un caso marginal, pero espero que ayude a alguien.
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.
Simplemente abra la nueva terminal y escriba npm config edit
y npm config -g edit
. Restablecer los valores predeterminados. Después de ese terminal cerrado, abra el nuevo y escriba npm --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 :)