应用程序打包

要使用 Electron 分发你的应用,需要打包并重命名它。 为此,您既可使用专用工具,也可以手动操作。

专用工具

有几种工具可以打包和分发您的Electron应用程序。 我们建议使用 Electron Forge。 你可以直接查看他们的 documentation, 或者参考 Packaging and Distribution 章节的 Electron 教程.

手动打包

如果您更喜欢手动操作,有两种方法可以分发应用程序:

  • 使用预构建可执行文件
  • 应用程序源代码存档

使用预构建可执行文件

为了使用 Electron 部署你的应用程序,你需要下载 Electron 的 prebuilt binaries。 接下来,你存放应用程序的文件夹需要叫做 app 并且需要放在 Electron 的 资源文件夹Resources下,如下面的示例所示。

应用程序打包 - 图1note

Electron预构建的二进制文件的位置 在下面的示例中用 electron/ 表示。

macOS

  1. electron/Electron.app/Contents/Resources/app/
  2. ├── package.json
  3. ├── main.js
  4. └── index.html

Windows and Linux

  1. electron/resources/app
  2. ├── package.json
  3. ├── main.js
  4. └── index.html

然后在 macOS上执行 Electron.app ,在 Linux 上执行 electron 或 在 Windows上执行electron.exe, 随后 Electron 将作为你的应用启动。 然后, electron 目录将作为您的分发产品交付给用户。

打包应用源码 (asar)

如果你没有使用 Parcel 或 Webpack 之类的构建工具,为了减轻拷贝源文件的分发压力,你可以把你的 app 打包成一个 asar 包来提升在 Windows 等平台上读取文件的性能。

为了使用一个 asar 档案文件代替 app 文件夹,你需要修改这个档案文件的名字为 app.asar , 然后将其放到 Electron 的资源文件夹下,然后 Electron 就会试图读取这个档案文件并从中启动。 如下所示:

macOS

  1. electron/Electron.app/Contents/Resources/
  2. └── app.asar

Windows

  1. electron/resources/
  2. └── app.asar

你可以在 electron/asar 存储库 中找到有关如何使用 asar 的更多详细信息。

使用下载好的可执行文件进行重新定制

将您的应用程序捆绑到Electron后,您可能需要在把应用分发给用户前将Electron进行重新定制

  • Windows: 您可以将electon.exe重命名为您喜欢的任何名称,也可以通过rcedit编辑其图标和其他信息。

  • Linux: 您可以将 electron 可执行文件重命名为您喜欢的任何名称。

  • macOS: 您可以将 Electron.app 重命名为所需的任何名称,并且还必须 以下 文件中的 CFBundleDisplayNameCFBundleIdentifierCFBundleName 字段重命名:

    • Electron.app/Contents/Info.plist
    • Electron.app/Contents/Frameworks/Electron Helper.app/Contents/Info.plist

    你也可以重命名帮助程序以避免它在系统活动监视器中显示为Electron Helper, 但是请确保你已经修改了帮助应用的可执行文件的名字。

    一个重命名后的应用程序的结构可能是这样的

  1. MyApp.app/Contents
  2. ├── Info.plist
  3. ├── MacOS/
  4. └── MyApp
  5. └── Frameworks/
  6. └── MyApp Helper.app
  7. ├── Info.plist
  8. └── MacOS/
  9. └── MyApp Helper

应用程序打包 - 图2note

你也可以通过改变产品名称后从源码构建来重塑Electron的形象。 你只需要在 args.gn 文件中将构建参数设置为对应产品的名称(electron_product_name = "YourProductName"),并进行重新构建。

请记住,我们不建议这样做,因为配置环境以从源代码编译 并非易事,并且需要花费大量时间。