Electron 中开发到发布流程


前言

Distribution Overview | Electron

工具选择

这两个项目在理念上的主要区别在于,Electron Forge 专注于将现有的第一方工具整合到一个单一的构建管道中,而 Builder 则为大多数构建任务重写了自己的内部逻辑。

forge 特色

electron 生态自己出的, 值得再深入了解, 他也是一系列工具的组合:

  • Application packaging (electron-packager)
  • Code signing (e.g. @electron/osx-sign)
  • Creating platform-specific installers (e.g. electron-winstaller or electron-installer-dmg).
  • Native Node.js module rebuilding (electron-rebuild)
  • Universal macOS builds (@electron/universal)

他主打的理念是:

  • 快速吸收新特性: Forge receives new features for application building as soon as they are supported in Electron (e.g. ASAR integrity or universal macOS builds). These features are built with first-party Electron tooling in mind, so Forge receives them as soon as they are released.

  • 多架构构建,易于理解和扩展。Forge’s multi-package architecture makes it easier to understand and extend. Since Forge is made up of many smaller packages with clear responsibilities, it is easier to follow the flow of the code. Also, its extensible API design means that you can write your own build logic separate from the provided configuration options for advanced use cases.

electron-builder

把 pack, sign, make, publish, update, 一条龙服务。

  • Build and publish in parallel, using hard links on CI server to reduce IO and disk space usage.

开发阶段

完成开发调试,最终通过 build, 构建出为后续流程做准备的文件。erb 的脚手架中, 就是放在 release/app 目录中。

packing

把上一步准备好的资源,打包成可执行的文件。比如 app 文件, exe 文件等。这一步,还不是安装文件。

这个阶段, mac 需要对 app 进行 code sign, window 的签名在 make 阶段。

打包一般是把业务代码,默认都是整合成了 asar 压缩包,然后套上 electron 的壳,形成了 app 或者对应的 exe 文件。

code signing

Code Signing | Electron

这个阶段, 是把什么的软件, 变成了可安装的东西,为后续发布做准备。

  • mac 是签名 + norarization
  • windows 是签名

make

把上面生成的东西, 封装成安装包, win 安装包也需要被签名。

这一步, 在 erb 中, 对应 prepackaged, electron-builder, 就是 building, 形成 zip, dmg, exe 等文件。

publish

是分发包的过程,一般可以放在一些静态服务器上, 比如: GitHub Releases, Amazon S3, DigitalOcean Spaces and Bintray.

updating

用户下载安装包后,会自动检查更新,如果有更新,会自动下载更新包,然后提示用户安装。这里还区分全量更新和 asar 的热更新。

安装包更新

asar 更新

ASAR Integrity | Electron