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
这个阶段, 是把什么的软件, 变成了可安装的东西,为后续发布做准备。
- mac 是签名 + norarization
- windows 是签名
make
把上面生成的东西, 封装成安装包, win 安装包也需要被签名。
这一步, 在 erb
中, 对应 prepackaged
, electron-builder, 就是 building
, 形成 zip
, dmg
, exe
等文件。
publish
是分发包的过程,一般可以放在一些静态服务器上, 比如: GitHub Releases, Amazon S3, DigitalOcean Spaces and Bintray.
updating
用户下载安装包后,会自动检查更新,如果有更新,会自动下载更新包,然后提示用户安装。这里还区分全量更新和 asar 的热更新。
electron-builder
: 是自己封装的一套构建,更新方案forge
是基于electron
内置autoUpdater
的一套方案- 都需要安装一些检测
update
封装的包: