Electron打包发布的网络代理问题
Electron在开发的过程中,由于部分资源在github或者其他mirror上,连接慢或者无法连接需要通过代理访问,另外一种情况,在企业或者组织内网,会使用自己的证书或者网络代理来进行网络隔离,这些代理不同的地方处理方式不一样。
yarn&npm mirror
yarn或者npm首先可以使用npmmirror镜像站点 (推荐在npmrc文件中配置),如果公司内部有自己的镜像站,也可以配置为自己的镜像站
registry=https://registry.npmmirror.com/
electron_mirror=https://npmmirror.com/mirrors/electron/
electron_builder_binaries_mirror=https://npmmirror.com/mirrors/electron-builder-binaries/
yarn&npm 证书问题
在大家安装的过程中经常遇到的错误是unable to verify the first certificate,一般建议大家禁止ssl校验
yarn config set strict-ssl false
NODE_TLS_REJECT_UNAUTHORIZED=0(注意win与mac设置环境变量的差异)
yarn&npm proxy设置
一般proxy设置主要涉及到以下几个方面:
npm config set proxy="<http_proxy>"
npm config set https-proxy="<https_proxy>"
yarn config set proxy <http_proxy>
yarn config set https-proxy <https_proxy>
当然也可以设置全局代理
export http_proxy="<http_proxy>"
export https_proxy="<http_proxy>"
export no_proxy="localhost,127.0.0.1,.apple.com"(无需代理地址)
在开发过程,发现设置全局代理和electron_mirror后,下载地址未走代理,查阅资料发现ELECTRON_GET_USE_PROXY
在@electron/get源码中,如果为真,则会使用系统代理进行初始化
if (process.env.ELECTRON_GET_USE_PROXY) {
initializeProxy();
}
setEnv('GLOBAL_AGENT_HTTP_PROXY', env('HTTP_PROXY'));
setEnv('GLOBAL_AGENT_HTTPS_PROXY', env('HTTPS_PROXY'));
setEnv('GLOBAL_AGENT_NO_PROXY', env('NO_PROXY'));
另外,由于项目中还使用到了nvm来管理多个版本的node,nvm也需要设置proxy
export NVM_NODEJS_ORG_MIRROR=https://registry.npmmirror.com/-/binary/node
其他
macos上签名公证过程中发现一直上传失败,apple上传使用到了下面amazon s3的域名 公证资料查看这里,涉及到除去apple官方自己的域名部分,还有其他一些域名
notarytoolnotary-submissions-prod.s3-accelerate.amazonaws.com
no-s3-accelerationnotary-submissions-prod.s3.us-west-2.amazonaws.com