node.js - quitar - package.json que es
¿Hay alguna manera de hacer que npm install(el comando) funcione detrás del proxy? (27)
Lea sobre una variable proxy en un archivo .npmrc
pero no funciona. Intentando evitar descargar manualmente todos los paquetes requeridos e instalarlos.
¿Has probado las opciones de línea de comandos en lugar del archivo .npmrc
?
Creo que algo como 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/
A pesar de que configuré el proxy con la configuración, el problema no se resolvió, pero 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
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 revisa tu 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
Configurar npm
proxy
Para HTTP
:
npm config set proxy http://proxy_host:port
Para HTTPS
:
npm config set https-proxy http://proxy.company.com:8080
Nota : el https-proxy no tiene https
como protocolo, sino http
.
Después de vincular diferentes respuestas finalmente, las primeras cuatro líneas de @Kayvar responde me ayudan a resolver el problema:
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
En caso de duda, intente todos estos comandos, como lo hago:
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
set HTTPS_PROXY=http://myusername:[email protected]:8080
set HTTP_PROXY=http://myusername:[email protected]:8080
export HTTPS_PROXY=http://myusername:[email protected]:8080
export HTTP_PROXY=http://myusername:[email protected]:8080
export http_proxy=http://myusername:[email protected]:8080
npm --proxy http://myusername:[email protected]:8080 /
--without-ssl --insecure -g install
=======
ACTUALIZAR
Ponga sus configuraciones en ~/.bashrc
o ~/.bash_profile
para que no tenga que preocuparse por sus configuraciones cada vez que abra una nueva ventana de terminal.
Si su compañía 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 abra una terminal, ¡se que mi npm está actualizado!
Simplemente pegue el siguiente código en la parte inferior de su archivo
~/.bashrc
:###################### # 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ó.
Abre una nueva terminal
Verifique sus configuraciones ejecutando
npm config list
ycat ~/.npmrc
Intenta instalar tu módulo usando
-
npm install __
, o -
npm --without-ssl --insecure install __
, o - anule la configuración de su proxy usando
npm --without-ssl --insecure --proxy http://username:password@proxy:8080 install __
. - Si desea que el módulo esté disponible globalmente, agregue la opción
-g
-
En el sistema de Windows
Intente eliminar la configuración del proxy y del registro (si ya está establecida) y configure las variables de entorno en la línea de comandos a través
SET HTTP_PROXY=http://username:password@domain:port
SET HTTPS_PROXY=http://username:password@domain:port
a continuación, intente ejecutar npm install. Por esto, no establecerá el proxy en .npmrc, pero para esa sesión funcionará.
En mi caso, olvidé configurar "http: //" en mis archivos de configuración (se pueden encontrar en C: / Users / [USERNAME] / .npmrc) direcciones proxy. Así que en lugar de tener
proxy=http://[IPADDRESS]:[PORTNUMBER]
https-proxy=http://[IPADDRESS]:[PORTNUMBER]
tuve
proxy=[IPADDRESS]:[PORTNUMBER]
https-proxy=[IPADDRESS]:[PORTNUMBER]
Lo que, por supuesto, no funcionó, pero los mensajes de error tampoco ayudaron mucho ...
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
Esto funcionó para mí. Establecer el proxy http y https.
- npm config set proxy http://proxy.company.com:8080
- npm config set https-proxy http://proxy.company.com:8080
Esto funciona para mí en Windows:
npm config set proxy http://domain%5Cuser:pass@host:port
Si no estás en ningún dominio, usa:
npm config set proxy http://user:pass@host:port
Si su contraseña contiene caracteres especiales como "
, @
etc., reemplácelos por sus valores codificados de URL. Por ejemplo "
-> %22
, @
-> %40
:
-> %3A
. %5C
se usa para el carácter /
.
Estos son los pasos que he seguido (Windows):
- Edite el siguiente archivo
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 para ir!
Finalmente, he logrado resolver este problema siendo el 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 backshlash o # En mi caso tuve que codificar
-
backshlash
con% 5C para que eldomain/user will
sea eldomain%5Cuser
-
#
firme con%23%0A
para que la contraseña comoPassword#2
seaPassword%23%0A2
También he añadido la siguiente configuración:
npm config set strict-ssl false
npm config set registry http://registry.npmjs.org/
Ha habido muchas respuestas arriba para esta pregunta, pero ninguna de ellas funcionó para mí. Todos ellos mencionados para agregar el prefijo http://
. Así que lo agregué también. Todos fallaron.
Finalmente funciona después de que quité accidentalmente el prefijo http://
. 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, quizás pueda intentarlo de esta manera. Espero que esta sea útil.
Intente encontrar .npmrc en C: / Users / .npmrc
luego abrir (bloc de notas), escribir y guardar dentro:
proxy=http://<username>:<pass>@<proxyhost>:<port>
PS: elimina "<" y ">" por favor !!
Mi problema se redujo a un error tonto de mi parte. Como rápidamente un día solté mis proxies en un archivo Windows * .bat (http_proxy, https_proxy y ftp_proxy), olvidé escapar de los caracteres especiales para el dominio / usuario (% 5C) codificado en url 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 de vanguardia pero espero que ayude a alguien.
Muchas aplicaciones (p. Ej., Npm) pueden usar la configuración de proxy de las variables de entorno del usuario.
Simplemente puede agregar a su entorno las siguientes variables HTTP_PROXY y HTTPS_PROXY que tendrán el mismo valor para cada una
http://user:password@proxyAddress:proxyPort
Por ejemplo, si tiene Windows, puede agregar proxy de la siguiente manera:
Para configurar el proxy http tiene el conjunto de indicadores -g :
sudo npm config set proxy http://proxy_host:port -g
Para el proxy https, asegúrate nuevamente de que la marca -g esté establecida:
sudo npm config set https-proxy http://proxy_host:port -g
Para mí, aunque Python, etc., funcionarán a pesar de que 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 siguió recibiendo el mismo error.
Fue solo cuando eliminé https-proxy https://proxyccc.xxx.ca:8080
del archivo .npmrc que npm install electron --save-dev funcionó
Probé todas estas opciones, pero mi proxy no tenía ninguna por alguna razón. Entonces, nacido de la desesperación / desesperación, probé aleatoriamente curl
mi concha de Git Bash, y funcionó.
Desarmando todas las opciones de proxy usando
npm config rm proxy
npm config rm https-proxy
Y luego la ejecución de npm install
en mi shell Git Bash funcionó perfectamente. No sé cómo está configurado correctamente para el proxy y el indicador de Windows cmd
no lo es, pero funcionó.
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 el username:password
parte de username:password
si el proxy no requiere que se autentique
EDITAR: Un amigo mío acaba de señalar que puede lograr que NPM trabaje detrás de un proxy configurando las variables de entorno BOTH HTTP_PROXY y HTTPS_PROXY, y luego emita normalmente el comando npm install express (por ejemplo)
EDIT2: Como comentó @BStruthers, tenga en cuenta que las contraseñas que contienen "@" no se analizarán correctamente
Utilice el comando siguiente 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. Cambia de acuerdo a tu configuración de proxy. su trabajo para mi
cuando di sin el prefijo http / http en la configuración del proxy, npm falló incluso cuando el host y el puerto del proxy eran valores correctos. Funcionó solo después de agregar el prefijo de protocolo.
vim ~/.npmrc
en su máquina Linux y agregue lo siguiente. No se olvide de agregar una parte del registry
ya que esto causa un error en muchos casos.
proxy=http://<proxy-url>:<port>
https-proxy=https://<proxy-url>:<port>
registry=http://registry.npmjs.org/
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 strict-ssl false es una mala práctica y puede crear problemas. Lo que podemos hacer en su lugar es agregar el certificado que se está inyectando, mediante el certificado "man in the middle".
Cómo resolver esto en Windows:
- Descargue los certificados de CA de curl según el paquete de CA de Mozilla. También puedes usar el shellscript "firefox-db2pem.sh" de curl para convertir tu base de datos local de Firefox.
- Vaya a una página web usando https, por ejemplo Home en Chrome o Internet Explorer
- Haga clic en el icono de candado, haga clic en Ver certificados o "Válido" en Chrome
- Vaya a la ruta de certificación. El certificado superior, o el certificado raíz, es el que queremos extraer. Haga clic en ese certificado y luego "ver certificado"
- Haga clic en la segunda pestaña, "Detalles". Haga clic en "Copiar a archivo". Elija el formato DER y tome nota de dónde guarda el archivo. Elija un nombre de archivo adecuado, como rootcert.cer
- Si tienes Git instalado, tendrás openssl.exe. De lo contrario, instale git para windows en esta etapa. Lo más probable es que el ejecutable de openssl esté en C: / Archivos de programa / git / usr / bin / openssl.exe. Usaremos openssl para convertir el archivo al formato PEM que necesitamos para que NPM lo entienda.
- Convierta el archivo que guardó en el paso 5 usando este comando:
openssl x509 -inform DES -in **rootcert**.cer -out outcert.pem -text
donde rootcert es el nombre de archivo del certificado que guardó en el paso 5. - Abra outcert.pem en un editor de texto lo suficientemente inteligente como para entender los finales de línea, así que no el bloc de notas. Selecciona todo el texto y cópialo en el portapapeles.
- Ahora pegaremos ese contenido al final del paquete CA Cert realizado en el paso 1. Así que abra cacert.pem en su editor de texto avanzado. Vaya al final del archivo y pegue el contenido del paso anterior al final del archivo. (Conserve la línea vacía debajo de lo que acaba de pegar)
- Copie el cabundle.pem guardado en un lugar adecuado. Por ejemplo, su% userprofile% o ~. Tome nota de la ubicación del archivo.
- Ahora le diremos a npm / yarn que use el nuevo paquete. En una línea de comando, escriba
npm config set cafile **C:/Users/username/cacert.pem
donde C: / Users / username / cacert.pem es la ruta del paso 10. - Opcionalmente, vuelva a activar strict-ssl,
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á los HTTPs.
$ npm config set proxy http://login:pass@host:port
$ npm config set https-proxy http://login:pass@host:port
npm config set proxy <http://...>:<port_number>
npm config set registry http://registry.npmjs.org/
Esto solucionó mi problema.