You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

如何在electron-builder配置中设置GitHub代理以解决依赖下载问题?

解决electron-builder封闭网络下依赖下载失败的代理设置问题

看了你贴的构建日志,那个*proxyconnect tcp: tls: oversized record received with length 20527*错误,大概率是代理没被electron-builder正确识别,或者企业网络的SSL拦截导致的。下面给你几个靠谱的代理设置方法,按需求选就行:

1. 临时通过环境变量设置代理

electron-builder会自动读取系统的HTTP/HTTPS代理环境变量,你可以在执行构建命令前先配置好:

Windows 命令行

# 设置基础代理
set HTTPS_PROXY=http://你的代理地址:端口
set HTTP_PROXY=http://你的代理地址:端口

# 如果代理需要账号密码认证
set HTTPS_PROXY=http://用户名:密码@你的代理地址:端口

# 执行构建命令
electron-builder --win --x64

Linux/macOS 终端

# 设置基础代理
export HTTPS_PROXY=http://你的代理地址:端口
export HTTP_PROXY=http://你的代理地址:端口

# 带认证的情况
export HTTPS_PROXY=http://用户名:密码@你的代理地址:端口

# 执行构建命令
electron-builder --win --x64

要是有内部服务不需要走代理,还可以加个NO_PROXY变量排除:

# Windows
set NO_PROXY=localhost,127.0.0.1,你的内部域名或IP段
# Linux/macOS
export NO_PROXY=localhost,127.0.0.1,你的内部域名或IP段

2. 配置npm全局代理

因为electron-builder依赖npm的下载机制,直接给npm配置代理的话,后续所有npm相关操作(包括electron-builder拉取依赖)都会自动用这个代理,一劳永逸:

# 设置HTTP代理
npm config set proxy http://你的代理地址:端口

# 设置HTTPS代理
npm config set https-proxy http://你的代理地址:端口

# 代理需要认证的话
npm config set proxy http://用户名:密码@你的代理地址:端口
npm config set https-proxy http://用户名:密码@你的代理地址:端口

之后要取消代理的话,执行这两句就行:

npm config delete proxy
npm config delete https-proxy

3. 处理SSL拦截导致的TLS错误

如果你的企业网络有SSL拦截(比如防火墙会替换HTTPS证书),也会触发这个错误。优先推荐把企业的根证书导入到系统信任库,要是赶时间测试的话,也可以临时禁用Node.js的SSL验证(注意:这只适合测试,生产环境别用):

# Windows
set NODE_TLS_REJECT_UNAUTHORIZED=0
electron-builder --win --x64
# Linux/macOS
NODE_TLS_REJECT_UNAUTHORIZED=0 electron-builder --win --x64

内容的提问来源于stack exchange,提问作者liron_hazan

火山引擎 最新活动