Electron 加密:项目初始化
这里采用官方脚手架 Electron Forge[1] 来搭建我们的项目。为什么选择 forge 呢,这也是我经过多维度比较后,选择出来的最佳方案。
Electron Forge
应用程序的打包和分发一直是在 Electron 核心框架之外进行处理。在 Electron 的早期,开发者常常手动编辑 Electron 二进制文件来准备应用的分发。从那时起,Electron 社区开发了丰富的工具生态来处理 Electron 应用分发的每一个任务,包括:
应用打包(
electron-packager)代码签名(例如
@electron/osx-sign)创建特定平台的安装程序(例如
electron-winstaller或electron-installer-dmg)原生 Node.js 模块重建(
electron-rebuild)通用 macOS 构建(
@electron/universal)
尽管这些单一用途的包都是成熟和生产就绪的,但应用开发者需要理解每一个工具的作用,并编写自己的脚本来将这些包整合到构建流水线中。这个过程需要研究和迭代,对 Electron 的新手来说可能会感到困惑。
而 Electron Forge 则是一个一体化解决方案,统一了其碎片化的生态系统。通过 Forge,你可以使用最少的配置创建一个从开发到分发的构建流水线。Forge 还考虑到了高级用例,你可以通过配置文件 forge.config.js 添加任何构建逻辑。
Forge VS Builder
Electron Forge 可以看作是 Builder 的替代方案,用于应用程序构建和发布。这两个项目之间的关键哲学差异在于,Electron Forge 专注于将现有的一方工具合并到一个构建流水线中,而 Builder 为大多数构建任务重写了自己的内部逻辑(很难与官方新特性快速对齐)。
所以使用 Forge 有两个主要优点:
Forge 支持 Electron 中新支持的应用程序构建功能(例如 ASAR 完整性或通用 macOS 构建),这些功能通常是以第一方 Electron 工具构建的,所以 Forge 在它们发布后立即就获得了。
Forge 的多包架构使其更容易理解和扩展。由于 Forge 由许多责任清晰的小包组成,因此更容易跟踪代码的流程。此外,其可扩展的 API 设计意味着你可以编写自己的构建逻辑,与高级用例提供的配置选项分开。