Electron-Builder / electron-builder
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 而不是 npm。
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
中指定构建配置,如下所示查看所有选项。选项 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
环境变量,用于添加有关构建 linux 目标(snap 和 appimage 除外)的更多详细信息。
DEBUG_DMG=true
环境变量,用于从 hdiutil
(macOS) 添加更多调试/详细程度。
PowerShell
PowerShell 使用不同的语法来设置环境变量。
$env:DEBUG=electron-builder
捐赠¶
我们在空闲时间做这项开源工作。如果您希望我们投入更多时间,请捐赠。