• 应用部署
    • 手动发布
    • 将你的应用程序打包成一个文件
    • 使用下载好的二进制文件进行重新定制
      • Windows
      • macOS
      • Linux
    • 通过重编译源代码来进行重新定制
      • 创建一个自定义 Electron 分支
        • 通过 surf-build 创建一个自定义版本

    应用部署

    为了使用 Electron 部署你的应用,您需要进行打包和重塑。这样做的最简单的方法是使用以下第三方打包工具之一:

    • electron-forge
    • electron-builder
    • electron-packager这些工具将覆盖发布一个Electron应用所需采取的所有步骤,例如,打包应用程序,重组可执行程序,设置图标和可配置的创建安装程序。

    手动发布

    您也可以选择手动发布你的app。只需执行下面的步骤

    为了使用 Electron 部署你的应用程序,你需要下载 Electron 的 prebuilt binaries。 接下来,你存放应用程序的文件夹需要叫做 app 并且需要放在 Electron 的 资源文件夹Resources下,如下面的示例所示。 请注意,在下面的示例中,Electron的预制二进制文件的位置用electron/表示。

    在 macOS 中:

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

    在 Windows 和 Linux 中:

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

    然后运行 Electron.app (或者 Linux 中的 electron,Windows 中的 electron.exe), 接着 Electron 就会以你的应用程序的方式启动。electron 文件夹将被部署并可以分发给最终的使用者。

    将你的应用程序打包成一个文件

    除了通过拷贝所有的资源文件来分发你的应用程序之外,你可以通过打包你的应用程序为一个 asar 档案文件以避免暴露你的源代码。

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

    在 macOS 中:

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

    在 Windows 和 Linux 中:

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

    更多的细节参阅 Application packaging.

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

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

    Windows

    你可以将 electron.exe 重命名为任何你喜欢的名字,然后可以使用像 rcedit 那样的工具编辑它的 icon 和其他信息。

    macOS

    你可以将 Electron.app 重命名为任意你喜欢的名字,然后你也需要将一些文件中的 CFBundleDisplayNameCFBundleIdentifier 以及 CFBundleName 字段一并修改掉。 这些文件如下:

    • 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

    Linux

    你可以将 electron 重命名为任意你喜欢的名字。

    通过重编译源代码来进行重新定制

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

    创建一个自定义 Electron 分支

    如果只是为了构建你的 app,你不需要创建一个自定义的 Electron 分支, 即使是“生产级”的应用程序。 可以使用工具,如 electron-packagerelectron-builder 来 “重新定制” 你的 Electron app。

    如果你有个人定制的C++代码必须打补丁到Electron,而这些代码不能提交给上游或者已被官方版本拒绝,你就需要fork 你自己的Electron。 作为Electron的维护者,我们非常希望你的使用场景能够工作,所以请尽最大的努力让你的修改进入 Electron 的官方版本,这对你来说会更加方便并且我们衷心感谢你的帮助。

    通过 surf-build 创建一个自定义版本

    • 通过 npm 安装 Surf: npm install -g surf-build@latest

    • 创建一个新的 S3 bucket 并按照以下结构创建文件夹:

    1. - electron/
    2. - symbols/
    3. - dist/
    • 设置以下环境变量:

    • ELECTRON_GITHUB_TOKEN - 一个在 GitHub 创建版本的 token

    • ELECTRON_S3_ACCESS_KEY, ELECTRON_S3_BUCKET, ELECTRON_S3_SECRET_KEY - 你将要上传的 Node.js 的 headers 以及 symbols 的位置
    • ELECTRON_RELEASE - 设置为 true,上传部分将运行,不设置 和 surf-build 只是做 CI-type 的检查,它只在每次发起拉取请求时运行。
    • CI - 设置为 true ,否则无效
    • GITHUB_TOKEN - 设置为与 ELECTRON_GITHUB_TOKEN 相同
    • SURF_TEMP - 在 Windows 下设置为 C:\Temp 来防止路径太长的问题
    • TARGET_ARCH - 设置为 ia32x64
    • script/upload.py,你 必须 为你的分支(MYORG/electron)设置 ELECTRON_REPO, 尤其如果你本身是一个 Electron 贡献者。

    • surf-build -r https://github.com/MYORG/electron -s YOUR_COMMIT -n 'surf-PLATFORM-ARCH'

    • 需要很长的时间来等待构建完成