electron-builder
一个完整的解决方案,用于打包和构建可分发的 Electron、Proton Native 应用程序,适用于 macOS、Windows 和 Linux,并内置"自动更新"支持。:shipit:
我们一直在寻求社区贡献!👀 搭建开发环境非常简单 🪩
我们谴责俄罗斯对乌克兰的军事侵略。我们与乌克兰人民站在一起。
赞助商
全在一处。 | |
|
|
|
|
文档
完整文档请查看 electron.build。
- NPM 包管理:
- 原生应用依赖编译(包括 Yarn 支持)。
- 开发依赖永远不会被包含。您无需显式忽略它们。
- 支持两个 package.json 结构,但即使您有原生生产依赖,也不强制使用它。
- 在 CI 服务器或开发机器上进行代码签名。
- 自动更新就绪的应用程序打包。
- 多种目标格式:
- 发布构建产物到 GitHub Releases、Amazon S3、DigitalOcean Spaces 和 Bintray。
- 高级构建:
- 将已打包的应用打包成可分发格式。
- 独立的构建步骤。
- 在 CI 服务器上并行构建和发布,使用硬链接以减少 IO 和磁盘空间使用。
- 支持 electron-compile(在构建时即时编译用于发布)。
- Docker 镜像,用于在任何平台上为 Linux 或 Windows 构建 Electron 应用。
- 支持 Proton Native。
- 按需自动下载所有必需的工具文件(例如,用于 Windows 应用程序代码签名、制作 AppX),无需手动设置。 | 问题 | 回答 | |----------|-------| | "我想配置 electron-builder" | 查看选项 | | "我发现了一个 bug 或者我有一个问题" | 提出问题 | | "我想支持开发" | 捐赠 |
安装
强烈推荐使用 Yarn 而不是 npm。
yarn add electron-builder --dev
PNPM 注意事项
为了与 pnpm
一起使用,您需要调整 .npmrc
,使用以下任一方法来正确打包您的依赖项(参考:#6389):
node-linker=hoisted
public-hoist-pattern=*
shamefully-hoist=true
注意:将 shamefully-hoist 设置为 true 等同于将 public-hoist-pattern 设置为 *。
Yarn 3 注意事项
Yarn 3 默认使用 PnP,但 electron-builder 仍需要 node-modules(参考:yarnpkg/berry#4804)。在 .yarnrc.yaml
中添加以下配置:
nodeLinker: "node-modules"
这将声明使用 node-modules 而不是 PnP。
快速设置指南
electron-webpack-quick-start 是创建新 Electron 应用程序的推荐方式。查看 Boilerplates。
-
在应用程序的
package.json
中指定标准字段 — name、description
、version
和 author。 -
在
package.json
中按如下方式指定 build 配置:"build": { "appId": "your.id", "mac": { "category": "your.app.category.type" } }
查看 所有选项。可能需要 files 选项来指示最终应用程序中应打包哪些文件,包括入口文件。 您也可以使用单独的配置文件,如
js
、ts
、yml
和json
/json5
。查看 read-config-file 了解支持的扩展。JS 示例用于编程 API -
添加 图标。
-
在开发
package.json
中添加 scripts 键:"scripts": { "app:dir": "electron-builder --dir", "app:dist": "electron-builder" }
然后您可以运行
yarn app:dist
(打包成可分发格式,如 dmg、Windows 安装程序、deb 包)或yarn app:dir
(仅生成包目录而不真正打包。这对测试目的很有用)。为确保您的原生依赖项始终与 electron 版本匹配,只需在
package.json
中添加脚本"postinstall": "electron-builder install-app-deps"
。 -
如果您有作为应用程序一部分的原生插件(不是作为依赖项),请将 nodeGypRebuild 设置为
true
。
请注意,默认情况下,所有内容都打包到 asar 存档中。
对于将要发布到生产环境的应用程序,您应该对应用程序进行签名。查看 在哪里购买代码签名证书。
捐赠
我们在空闲时间进行这项开源工作。如果您希望我们投入更多时间,请 捐赠。