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” | 查看选项 |
“我发现了一个错误或我有一个问题” | 打开一个 issue |
“我想支持开发” | 捐赠 |
安装¶
yarn add electron-builder --dev
Yarn 3 注意事项¶
Yarn 3 默认使用 PnP,但 electron-builder 仍然需要 node-modules(参考:yarnpkg/berry#4804)。在 .yarnrc.yaml
中添加如下配置
nodeLinker: "node-modules"
快速设置指南¶
electron-webpack-quick-start 是创建新的 Electron 应用程序的推荐方法。请参阅 样板。
-
在应用程序
package.json
中指定标准字段 — name,description
,version
和 author。 -
在
package.json
中指定 build 配置,如下所示请参阅 所有选项。选项 files 用于指示哪些文件应打包到最终应用程序中,包括入口文件,可能是必需的。您还可以使用单独的配置文件,例如"build": { "appId": "your.id", "mac": { "category": "your.app.category.type" } }
js
、ts
、yml
和json
/json5
。请参阅 read-config-file 以获取支持的扩展名。 程序化 API 的 JS 示例 -
添加 图标。
-
将 scripts 键添加到开发
package.json
中然后您可以运行"scripts": { "app:dir": "electron-builder --dir", "app:dist": "electron-builder" }
yarn app:dist
(以可分发格式(例如 dmg、windows 安装程序、deb 包)打包)或yarn app:dir
(仅生成包目录,而无需真正打包。这对于测试目的很有用)。为确保您的原生依赖项始终与 electron 版本匹配,只需将脚本
"postinstall": "electron-builder install-app-deps"
添加到您的package.json
中。 -
如果您有自己的作为应用程序一部分(而不是作为依赖项)的原生插件,请将 nodeGypRebuild 设置为
true
。
请注意,默认情况下,所有内容都打包到 asar 存档 中。
对于将要发布到生产环境的应用程序,您应该对您的应用程序进行签名。请参阅 在哪里购买代码签名证书。
程序化使用¶
请参阅 node_modules/electron-builder/out/index.d.ts
。提供了 TypeScript 的类型定义,也可以在 此处 找到。
下面提供的代码片段也显示了 此处 的“实际操作”。
"use strict"
const builder = require("electron-builder")
const Platform = builder.Platform
// Promise is returned
builder.build({
targets: Platform.MAC.createTarget(),
config: {
"//": "build options, see https://goo.gl/QQXmcV"
}
})
.then(() => {
// handle result
})
.catch((error) => {
// handle error
})
样板¶
- electron-webpack-quick-start — 使用 electron-webpack 开始开发的最低限度项目结构。推荐。
- electron-react-boilerplate 可扩展的跨平台桌面应用程序的样板。
- electron-react-redux-boilerplate 一个用于开始使用 Electron、React 和 Redux 的最小样板。
- electron-boilerplate 一个简约而全面的样板应用程序。
- Vue CLI 3 Electron 插件 一个无需配置的 Vue CLI 3 Electron 插件。
- electron-vue-vite 一个非常简单的 Electron + Vue3 + Vite5 样板。
- vite-electron-builder 基于 Vite 的 Electron 应用程序的安全样板。支持多种框架。
- electronjs-with-nextjs 带有 NextJS 和 TypeScript 的 ElectronJS 应用程序。
调试¶
设置 DEBUG
环境变量以调试 electron-builder 正在执行的操作
DEBUG=electron-builder
FPM_DEBUG
env 添加有关构建 linux 目标(snap 和 appimage 除外)的更多详细信息。
DEBUG_DMG=true
env var 从 hdiutil
(macOS) 添加更多调试/详细程度。
PowerShell
PowerShell 使用不同的语法来设置环境变量。
$env:DEBUG=electron-builder
捐赠¶
我们在空闲时间进行这项开源工作。如果您希望我们投入更多时间,请捐赠。