Bower detrás de un proxy

bower install detrás de un proxy falla en el tiempo de espera con la siguiente configuración (algunos conjuntos son inútiles …):

 git config --global http.proxy fr-proxy.example.com:3128 git config --global https.proxy fr-proxy.example.com:3128 export http_proxy=http://fr-proxy.example.com:3128 export https_proxy=http://fr-proxy.example.com:3128 npm config set proxy http://fr-proxy.example.com:3128 npm config set https-proxy http://fr-proxy.example.com:3128 npm config set registry http://registry.npmjs.org/ 

También he intentado una instalación / desinstalación de bower y una bower clean cache .

Edite su archivo .bowerrc y agregue la configuración de proxy deseada:

 { "proxy":"http://:", "https-proxy":"http://:" } 

Si trabaja detrás de un proxy autenticado, el usuario y la contraseña deben incluirse así:

 { "proxy":"http://:@:", "https-proxy":"http://:@:" } 

Por lo general, el .bowerrc está al lado de la bower.json. Y si no hay un archivo .bowerrc cerca del archivo bower.json, puede crear uno por sí mismo.

Tengo un problema con el comando bower list , que fue causado por el hecho de que Bower usa git con las URL de git:// para obtener la lista de repositorys remotos de GitHub, pero el protocolo git:// está bloqueado por nuestro firewall corporativo. Para resolver este problema además de configurar las variables de entorno, también tengo que agregar configuraciones adicionales a git. Aquí está la lista completa de comandos que tengo que ejecutar (recuerde reemplazar el host y el puerto proxy con el suyo):

 # set proxy for command line tools export HTTP_PROXY=http://localhost:3128 export HTTPS_PROXY=http://localhost:3128 export http_proxy=http://localhost:3128 export https_proxy=http://localhost:3128 # add configuration to git command line tool git config --global http.proxy http://localhost:3128 git config --global https.proxy http://localhost:3128 git config --global url."http://".insteadOf git:// 

Las variables de entorno estándar en Bash están en mayúsculas, para proxy son HTTP_PROXY y HTTPS_PROXY , pero algunas herramientas esperan que estén en minúsculas, Bower es una de esas herramientas. Es por eso que prefiero tener el proxy configurado en 2 casos: inferior y superior.

Bower está utilizando git para obtener paquetes de GitHub, por eso las claves de configuración también deben agregarse a git. http.proxy y https.proxy son configuraciones de proxy y deben apuntar a su proxy. Por último, pero no menos importante, debe decirle a git que no use el protocolo git:// , ya que puede estar bloqueado por un firewall. Necesita reemplazarlo con el protocolo http:// estándar. Alguien sugiere usar https:// lugar de git:// como se git config --global url."https://".insteadOf git:// continuación: git config --global url."https://".insteadOf git:// , pero estaba obteniendo el Connection reset by peer error de Connection reset by peer , así que ‘ m usando http:// , que funciona bien para mí.

En casa no uso ningún proxy y no tengo firewall corporativo, por lo que prefiero volver a la configuración “normal” sin proxy. Así es como lo hago:

 # remove proxy environment variables unset HTTP_PROXY unset HTTPS_PROXY unset http_proxy unset https_proxy # remove git configurations git config --global --unset http.proxy git config --global --unset https.proxy git config --global --unset url."http://".insteadOf 

No soy muy bueno para recordar cosas, así que nunca recordaría todos esos comandos. Además de esto, soy perezoso y no quisiera escribir esos comandos largos a mano. Esta es la razón por la que estaba creando funciones para configurar y anular la configuración de proxy. Aquí hay 2 funciones que he agregado a mi archivo .bashrc después de algunas definiciones de alias:

 set_proxy() { export HTTP_PROXY=http://localhost:3128 export HTTPS_PROXY=http://localhost:3128 # some tools uses lowercase env variables export http_proxy=http://localhost:3128 export https_proxy=http://localhost:3128 # config git git config --global http.proxy http://localhost:3128 git config --global https.proxy http://localhost:3128 git config --global url."http://".insteadOf git:// } unset_proxy() { unset HTTP_PROXY unset HTTPS_PROXY unset http_proxy unset https_proxy git config --global --unset http.proxy git config --global --unset https.proxy git config --global --unset url."http://".insteadOf } 

Ahora, cuando necesito configurar el proxy, simplemente set_proxy comando set_proxy , y para eliminar el comando unset_proxy . Con la ayuda del autocompletado de Bash, ni siquiera necesito escribir esos comandos, pero permítame completarlos por mí.

Mi script (usando git bash en Windows) para configurar el proxy fue ejecutado por un usuario diferente del que estaba usando para bower. Las variables de entorno no fueron tomadas en cuenta.

Así que la siguiente configuración es suficiente, como se especifica en otras respuestas:

 export http_proxy=http://fr-proxy.example.com:3128 export https_proxy=http://fr-proxy.example.com:3128 

Si su sistema operativo es Linux o OS X, pruebe el siguiente comando bash http_proxy='proxy server' https_proxy='proxy server' bower