当前位置: 首页 > news >正文

Electron 打包与分发

Electron 中的打包与分发

打包是将 Electron 应用从开发环境转换为可分发的独立桌面安装包的过程(Windows: .exe/.msi;macOS: .dmg/.app;Linux: .deb/.rpm/.AppImage)。官方推荐使用成熟的打包工具,避免手动操作。以下基于 2025 年最新实践总结。

1.主流打包工具对比
工具优点缺点/注意事项支持平台推荐场景
electron-builder配置最简单、功能最全(自动更新、代码签名、多种格式、多语言安装器)依赖较多,偶尔配置复杂Win/mac/Linux首选,大多数项目
electron-forge官方推荐,模块化(支持多种 maker),与 Webpack/Vite 集成好配置稍繁琐,自动更新需额外插件Win/mac/Linux喜欢模块化、需要自定义流程
electron-packager最轻量、简单快速只打包不生成安装器,需手动签名/公证Win/mac/Linux快速原型、内部分发
electron-updater + builder与 builder 结合实现自动更新--所有需要自动更新的应用

2025 年推荐electron-builder(社区最活跃,文档最全)。

2.使用 electron-builder 打包(推荐流程)

安装

npminstall--save-dev electron-builder

package.json 配置(关键部分):

{"name":"my-app","version":"1.0.0","main":"main.js","scripts":{"build":"electron-builder","dist:win":"electron-builder --win","dist:mac":"electron-builder --mac","dist:linux":"electron-builder --linux"},"build":{"appId":"com.example.myapp","productName":"MyApp","directories":{"output":"dist"// 输出目录},"files":["dist-electron/**/*",// Vite/Webpack 输出"main/**/*"],"win":{"target":[{"target":"nsis","arch":["x64","ia32"]},// 安装器{"target":"portable"}// 便携版],"icon":"build/icon.ico"},"mac":{"target":["dmg","zip"],"icon":"build/icon.icns","hardenedRuntime":true,"gatekeeperAssess":false,"entitlements":"build/entitlements.mac.plist"},"linux":{"target":["AppImage","deb","rpm"],"icon":"build/icons"},"nsis":{"oneClick":false,// 多语言安装器"allowToChangeInstallationDirectory":true}}}

常见打包命令

# 打包所有平台npmrun build# 只打包当前平台npmrun build -- --publish never# 发布(配合自动更新)npmrun build -- --publish always
3.代码签名与公证(必须,用于生产发布)
平台要求操作方式
WindowsSmartScreen 信任、病毒扫描使用 EV 代码签名证书(DigiCert、Sectigo)
CSC_LINKCSC_KEY_PASSWORD环境变量
macOSGatekeeper、Notarization(公证)必备- Apple Developer ID 证书
- 启用 Hardened Runtime
- electron-builder 自动公证(需APPLE_IDAPPLE_ID_PASSWORD
Linux无强制,但 AppImage 可签名可选 GPG 签名
4.自动更新(Squirrel / electron-updater)

推荐使用electron-updater(与 builder 无缝集成)。

配置

npminstallelectron-updater

主进程代码

const{autoUpdater}=require('electron-updater');autoUpdater.on('checking-for-update',()=>{/* ... */});autoUpdater.on('update-available',()=>{/* 提示用户 */});autoUpdater.on('update-downloaded',()=>{autoUpdater.quitAndInstall();});// 启动时检查app.whenReady().then(()=>{autoUpdater.checkForUpdatesAndNotify();});

发布服务器选项

builder 配置(package.json):

"publish":[{"provider":"github","owner":"yourname","repo":"my-app"}]
5.最佳实践与常见坑

使用 electron-builder + electron-updater + GitHub Releases 的组合,是当前最成熟、最省心的打包与分发方案。如果你的项目使用 Vite + React/Vue 或有特殊需求(如企业内部分发、自定义安装器),可以提供更多信息,我可以给出更精确的配置示例!

http://www.gsyq.cn/news/134716.html

相关文章:

  • zabbix监控MinIO
  • 掌握这4种异常处理模式,轻松应对Open-AutoGLM解密崩溃危机
  • Electron 实战项目
  • 2025年年终北京别墅装修公司推荐:聚焦隐蔽工程与环保标准严苛评测,5家高口碑别墅专家深度解析 - 十大品牌推荐
  • 2025 自动化运维产品深度对比:破解异构架构与合规高效双重挑战
  • Open-AutoGLM异常处理全解析:5个必须掌握的解密容错策略
  • 2025年年终北京别墅装修公司推荐:基于多品牌深度横评与真实用户口碑的5家高可靠性服务商盘点 - 十大品牌推荐
  • Open-AutoGLM弹窗监控与自动关闭技术实践(独家方案首次公开)
  • 香港体育杰出领袖黑志宏领衔 沪港共筑海派武脉——绞龙棍激活香江青少年武术新生态
  • 1688商品详细信息价格SKU接口
  • LangFlow实战案例分享:构建多步骤推理AI代理全流程
  • 嵌入式第三十九篇——linux系统编程——信号通信、共享内存
  • Electron 文件系统与数据存储
  • 基于单片机的恒温储物箱设计(蓝牙RX TX反了)(有完整资料)
  • 论文AI率飙高?这2款降AI率工具亲测有效,轻松通过AI率检测!
  • 支持信创环境的FTP有哪些?一文读懂安全效率全面升级的方案
  • 日历订阅机制滥用:新型钓鱼与恶意软件投递渠道分析
  • 【SPIE出版 | EI检索】2026年电力电子与电能变换国际学术会议(ICPEPC 2026)
  • 为什么顶尖团队都在用Open-AutoGLM处理多弹窗?真相令人震惊!
  • 基于婚礼邀请的钓鱼攻击:社会工程模式、技术实现与防御机制研究
  • LangFlow在AIGC领域的10种创新应用场景
  • 谷歌浏览器翻译插件的使用
  • SGLang AI 金融 π 对(杭州站)回顾:大模型推理的工程实践全景
  • 孤能子视角:植物、微生物和动物
  • LangFlow监控面板怎么加?自定义指标追踪方案
  • 弹窗失控?Open-AutoGLM错误未捕获的5个真实场景与修复方案
  • LangFlow + GPU算力加速:打造高性能AI工作流新体验
  • LangFlow权限控制系统设想与路线图
  • 融合风险治理的轨道交通全域安全生产体系构建研究:以网络与人身安全为核心
  • 【企业级弹窗治理方案】:用Open-AutoGLM实现千级页面干扰清理