跳到内容

electron-builder npm version downloads per month donate

一个完整的解决方案,用于打包和构建可用于发布的 Electron, Proton Native 应用程序,支持 macOS、Windows 和 Linux,并开箱即用地支持“自动更新”。 :shipit

始终期待社区贡献! 👀 设置 开发环境 非常容易 🪩

赞助商

WorkFlowy
笔记、任务、项目。
全部集中在一处。


Tidepool
您了解糖尿病数据的门户


Keygen
一个开放的、源代码可用的软件许可和分发 API


ToDesktop
ToDesktop:一个构建和发布 Electron 应用程序的一体化平台


Dashcam
Dashcam:通过 Electron 的视频崩溃报告捕获重现任何错误的步骤。

文档

请参阅 electron.build 上的完整文档。

  • NPM 包管理
  • CI 服务器或开发机器上的 代码签名
  • 准备好 自动更新 的应用程序打包。
  • 多种目标格式
    • 所有平台:7zziptar.xztar.7ztar.lztar.gztar.bz2dir(解压缩目录)。
    • macOS: dmgpkgmas
    • Linux: AppImage, snap, debian 包 (deb), rpm, freebsd, pacman, p5p, apk
    • Windows: nsis (安装程序), nsis-web (Web 安装程序), portable (无需安装的便携式应用程序), AppX (Windows 应用商店), MSI, Squirrel.Windows。
  • 发布工件 到 GitHub Releases、Amazon S3、DigitalOcean Spaces 和 Bintray。
  • 高级构建
  • 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"
将声明使用 node-modules 而不是 PnP。

快速设置指南

electron-webpack-quick-start 是创建新的 Electron 应用程序的推荐方法。请参阅 样板

  1. 在应用程序 package.json 中指定标准字段 — name, description, versionauthor

  2. package.json 中指定 build 配置,如下所示

    "build": {
      "appId": "your.id",
      "mac": {
        "category": "your.app.category.type"
      }
    }
    
    请参阅 所有选项。选项 files 用于指示哪些文件应打包到最终应用程序中,包括入口文件,可能是必需的。您还可以使用单独的配置文件,例如 jstsymljson/json5。请参阅 read-config-file 以获取支持的扩展名。 程序化 API 的 JS 示例

  3. 添加 图标

  4. 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 中。

  5. 如果您有自己的作为应用程序一部分(而不是作为依赖项)的原生插件,请将 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
  })

样板

调试

设置 DEBUG 环境变量以调试 electron-builder 正在执行的操作

DEBUG=electron-builder

FPM_DEBUG env 添加有关构建 linux 目标(snap 和 appimage 除外)的更多详细信息。

DEBUG_DMG=true env var 从 hdiutil (macOS) 添加更多调试/详细程度。

cmd

Windows 上,环境变量使用 set 命令设置。

set DEBUG=electron-builder

PowerShell

PowerShell 使用不同的语法来设置环境变量。

$env:DEBUG=electron-builder

我们在空闲时间进行这项开源工作。如果您希望我们投入更多时间,请捐赠