在代理人后面的凉亭

bower install在代理服务器后面的bower install失败,下面的设置(一些设置是无用的…):

 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/ 

我也尝试安装/卸载凉亭和bower clean cache

编辑.bowerrc文件并添加所需的代理configuration:

 { "proxy":"http://<host>:<port>", "https-proxy":"http://<host>:<port>" } 

如果工作在经过身份validation的代理之后,则应该包含用户和密码,如下所示:

 { "proxy":"http://<user>:<password>@<host>:<port>", "https-proxy":"http://<user>:<password>@<host>:<port>" } 

通常,.bowerrc在bower.json旁边。 如果在bower.json文件附近没有.bowerrc文件,您可以自己创build一个文件。

bower list命令有问题,这是由于bower使用gitgit:// URL来获取远程GitHub存储库的列表,但git://协议被我们公司的防火墙阻止。 为了解决这个问题,除了设置环境variables之外,我还需要为git添加额外的configuration。 这里是我必须执行的命令的完整列表(记住用你的代替主机和端口):

 # 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:// 

Bash中的标准环境variables是大写的,对于代理来说,它们是HTTP_PROXYHTTPS_PROXY ,但有些工具希望它们是小写字母,bower就是其中一种工具。 这就是为什么我更喜欢在两种情况下设置代理:上下。

Bower使用git从GitHub获取软件包,这也是configuration密钥需要添加到git中的原因。 http.proxyhttps.proxy是代理设置,并应指向您的代理。 最后但并非最不重要的是,你需要告诉git不要使用git://协议,因为它可能被防火墙阻止。 您需要用标准的http://协议来replace它。 有人build议使用https://而不是git://像下面这样: git config --global url."https://".insteadOf git:// ,但是我Connection reset by peer错误获得Connection reset by peer , m使用http:// ,这对我来说工作正常。

在家里我不使用任何代理服务器,也没有企业防火墙,所以我更喜欢切换回“正常”的无代理设置。 以下是我如何做到这一点:

 # 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 

我不是很善于记住事情,所以我永远不会记得所有这些命令。 最重要的是我很懒,不想用手input那些长的命令。 这就是我创build函数来设置和取消设置代理服务器的原因。 以下是一些别名定义后添加到我的.bashrc文件中的两个函数:

 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 } 

现在,当我需要设置代理,我只是执行set_proxy命令,并取消设置unset_proxy命令。 在Bash的自动完成的帮助下,我甚至不需要键入这些命令,但是让Tab完成它们。

我的脚本(在Windows上使用git bash)用于设置代理是由我用于bower的用户执行的。 环境variables没有考虑在内。

所以下面的设置就足够了,如其他答案中所指定的那样:

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

如果您的操作系统是Linux或OS X,请尝试以下命令: bash http_proxy='proxy server' https_proxy='proxy server' bower