错误现象
今天在mac电脑的终端中无法初始化项目,查看日志发现项目依赖github资源,终端访问github网络资源时超时。报错如下:
ERROR Error: Failed to download template from registry: request to https://raw.githubusercontent.com/xxx/xxxx/xxx.json
原因分析
身处国内网络环境,在开发过程中会遇到访问github资源或者谷歌等时会遇到网络问题。大部份网络工具(懂的都懂)只能在浏览器中代理网络,但是对于终端的网络请求是无法进行代理转发。所以只需要让终端网络也走代理即可。
解决方案
方法一(推荐)
在终端中直接运行:
export http_proxy=http://proxyip:port
例如我的http的代理地址是本机ip 127.0.0.1 端口是8999,可以使用如下命令:
export http_proxy=http://127.0.0.1:8999
如果是https那么就经过如下命令:
export https_proxy=http://127.0.0.1:8999
现在的网络环境大部份是https 所以通常只用设置https即可,当然也可以两个都设置。
方法二
把代理服务器地址写入shell配置文件.bashrc 直接在.bashrc添加以下内容:
export http_proxy="http://proxyip:port"
export https_proxy="http://proxyip:port"
如果走的是socks5代理,配置如下:
export http_proxy="socks5://proxyip:port"
export https_proxy="socks5://proxyip:port"
写入文件保存后执行以下命令或者重新打开终端即可生效
source ~/.bashrc
方法一、二区别
方法一优点是仅对当前打开的终端会话有效,关闭终端之后配置失效,针对临时场景可以选择此方法。缺点是下次如果需要配置代理,需要重复方法一
方法二优点是永久生效,无需重复配置。缺点是如果不常用终端代理或者代理经常变动如果忘记修改文件导致终端无法上网。遇到很多客户说终端无法上网,原因就是上一个使用服务器的人配置了永久代理,而代理失效了。