在单个构建中打包跨平台 Electron 应用程序都有哪些机制?

Posted

技术标签:

【中文标题】在单个构建中打包跨平台 Electron 应用程序都有哪些机制?【英文标题】:What are some mechanisms to package cross-platform Electron apps in a single build?在单个构建中打包跨平台 Electron 应用程序有哪些机制? 【发布时间】:2016-03-15 18:27:51 【问题描述】:

我正在开发基于 Electron 的桌面应用程序,并使用 electron-packager 创建可执行文件。该应用程序使用了一些二进制节点模块,例如bcrypt

在我的 Mac 上,我打包了应用程序,面向 OSX 和 Windows。生成的包在 OSX 上运行良好。但是当我在 Windows 8.1 64 位上运行生成的 Windows 包(.exe 和依赖项)时,应用程序会抛出一个错误(非常预期):

是否有任何实践或工具可以帮助我在任何操作系统中进行一次打包,即使应用程序依赖于二进制模块,并为 Windows、OSX 和 Linux 生成可执行文件?例如,我想在 OSX 上运行构建来为所有三个操作系统生成可执行文件,而不必为每个平台重复打包

【问题讨论】:

【参考方案1】:

如果可能,您应该考虑从项目中删除本机二进制要求。例如,您提到的模块 bcrypt 有另一个实现是完整的 JS 并且不需要本机二进制文件:https://www.npmjs.com/package/bcrypt-nodejs

如果您确实需要将编译后的二进制文件作为依赖项的一部分包含在内,您可能必须自己设计构建/打包自动化的那一部分。

【讨论】:

以上是关于在单个构建中打包跨平台 Electron 应用程序都有哪些机制?的主要内容,如果未能解决你的问题,请参考以下文章

Electron打包React构建桌面应用

Electron打包生成exe文件

Electron入门应用打包exe(windows)

Electron使用Electron将web项目打包成桌面应用程序

Electron把网页打包成桌面应用并进行源码加密

使用 electron-builder 将电子应用程序打包到单个 .exe 安装程序中