因为众所周知的原因,很多国外的资源没法下载,或者速度很慢;最近编译了一次V8,下载过程中再次充分体会到了这一点……所以就稍微记录一下平时用到的一些工具的代理的设置方法。因为我主要用的是Windows,下面的内容也是基于Windows的。
提示:本文不是翻墙教程,只是探讨可能的设置代理的方法。
此外,这些方法的设置主要是临时性的(npm和yarn除外)。为什么不搞个持久化的方式,因为我不想因为某次忘了关,或者代理的端口变了,导致连不上网,然后花很长时间去排查问题;可以写个脚本啥的。
验证方式
curl -vv http://www.google.com
我一开始没想到Windows下也能用curl。
Windows命令行(CMD)
set http_proxy=<protocol>://<host>:<port>
set https_proxy=<protocol>://<host>:<port>
事实上,就我所知,大部分的代理的host是在localhost上的,主要是协议和端口有所不同。
Git Bash
export http_proxy=<protocol>://<host>:<port>
export https_proxy=<protocol>://<host>:<port>
其实是差不多的写法。
此外,之前看到有人提到在Git层设置代理,具体写法如下:
git config --global http.proxy '<protocol>://<host>:<port>'
git config --global https.proxy '<protocol>://<host>:<port>'
但是在我这里没有生效,也不知道为什么。不过很多人说有效,姑且记录一下。
npm
老生常谈的内容了。一般来说也不太需要代理,因为有国内镜像。
npm config set registry https://registry.npm.taobao.org
并且,有些内容也是有国内镜像的。比如著名的node-sass,有三种方式进行install。
比如,在shell里设置环境变量:
export SASS_BINARY_SITE=http://example.com/
或者,在.npmrc
文件里增加一个配置:
sass_binary_site=http://example.com/
再或者,直接作为命令行的参数:
npm install node-sass --sass-binary-site=http://example.com/
实在是在国内找不到的时候,就用这个设置代理:
npm config set proxy <protocol>://<host>:<port>
类似的库还有一些测试用的driver,比如chromedriver和geckodriver,做e2e测试的时候会用到。举个例子:
npm install chromedriver --chromedriver_cdnurl=http://npm.taobao.org/mirrors/chromedriver \
&& npm install geckodriver --geckodriver_cdnurl=http://npm.taobao.org/mirrors/geckodriver
yarn
yarn设置国内镜像的方法和npm差不多:
yarn config set registry https://registry.npm.taobao.org
其实我更喜欢用原生的npm,但是似乎很多开源项目都用的yarn,部分项目更是明确要求用yarn来安装依赖,所以还是很有用的。
yarn config set proxy <protocol>://<host>:<port>
yarn confit set https-proxy <protocol>://<host>:<port>