内容提要
文章讨论国内开发者下载依赖的困难:GitHub 资源被墙,npm 安装常失败。建议使用国内镜像(如淘宝源、cnpm)、修改 hosts 或配置代理,并列出 cmd、gitbash、powershell 及 npm、git 的代理设置方法,指出 socks5 可能报错,建议改用 http 代理。
延伸解读
镜像并非万能:冷门依赖的应对
文章指出,国内镜像如淘宝源和cnpm能加速npm依赖,但仅覆盖常见库。对于不完全托管在npm的依赖,安装时可能请求GitHub等资源,而raw.githubusercontent.com已被墙,导致失败。cnpm虽对electron、node-sass等做了镜像,但冷门库仍需其他方法,如修改hosts或使用代理。
代理设置:不同Shell的差异
代理设置有时有效有时无效,很可能是因为使用的shell不同。文章总结了cmd、gitbash、powershell下的环境变量设置方式,并建议在命令行代理无效时,再设置npm的代理。这提醒开发者需根据实际使用的终端调整配置,避免混淆。
socks5代理的坑与变通
文章提到,npm设置socks5代理可能报错“tunneling socket could not be established”,且未给出直接解决方案。建议将socks5再代理一次到http,例如使用trojan QT5。这提示开发者,socks5并非总是可靠,http代理可能是更稳妥的选择。
git push的代理配置
对于git push失败,文章给出了配置方法:关闭ssl验证并设置本地代理。这反映了在受限网络下,git操作同样需要代理支持。开发者需注意,这些设置可能影响安全性,应仅在可信环境下使用。
Q&A
国内开发者下载依赖时经常遇到哪些困难?
国内开发者,尤其是安卓和前端开发者,下载依赖时经常遇到困难,因为GitHub资源被墙,npm安装常失败,导致下载速度极慢甚至无法下载。
有哪些国内镜像可以加速npm依赖下载?
可以使用淘宝镜像(通过nrm切换npm源)和cnpm。cnpm不仅使用淘宝镜像,还对electron、node-sass等常用库的GitHub资源进行了镜像。
如何通过修改hosts解决GitHub资源被墙的问题?
修改hosts相当于给地址加一个电话本,请求该地址时直接知道一个可用的IP,从而绕过墙。具体做法可参考相关教程。
在cmd、gitbash和powershell中如何设置代理?
cmd中使用set http_proxy=socks5://127.0.0.1:2080和set https_proxy=socks5://127.0.0.1:2080;gitbash中使用export HTTPS_PROXY=http://127.0.0.1:2080和export HTTP_PROXY=http://127.0.0.1:2080;powershell中使用$env:HTTP_PROXY = "http://127.0.0.1:2080"和$env:HTTPS_PROXY = "http://127.0.0.1:2080"。
npm设置socks5代理时出现tunneling socket could not be established错误怎么办?
文章指出该错误原因不明,建议将socks5再代理一次到http,例如使用trojan QT5等工具。
如何配置git的代理以解决git push失败的问题?
可以设置git config --global http.sslVerify "false"和git config --local http.proxy 127.0.0.1:2080。