electron-builder 使用简介

electron-builder npm version downloads per month donate

一个开箱即用的完整解决方案,用于将Electron, Proton Native or Muon 打包、构建成支持macOS, Windows and Linux三大系统的,可”自动更新”的可发布安装程序。

  • NPM 依赖包管理:
    • 支持原生应用依赖 编译 (包含yarn).
    • 开发依赖包不会打包编译到目标程序,无需开发者额外明确设置.
  • 代码签名 在 CI 服务器或者开发服务器上完成.
  • 自动更新 对打包后程序可用.
  • 支持多种目标格式:
    • 所有格式: 7z, zip, tar.xz, tar.7z, tar.lz, tar.gz, tar.bz2, dir (未打包文件).
    • macOS系统: dmg, pkg, mas.
    • Linux系统: AppImage, snap, debian package (deb), rpm, freebsd, pacman, p5p, apk
    • Windows系统: nsis (Installer), nsis-web (Web installer), portable (portable app without installation), AppX (Windows Store), MSI, Squirrel.Windows。
  • 双package.json目录结构 支持双package.json代码机构,同时支持其他代码结构即使应用程序有原生本地依赖。
  • 构建版本管理.
  • 发布项目 支持发布到 GitHub , Amazon S3, DigitalOcean Spaces 或 Bintray.
  • 构建可发布格式 应用程序安装包.
  • 独立的 构建流程.
  • 构建、发版同步进行, 通过与CI服务器进行硬链接来降低硬件磁盘的内存占用.
  • electron-compile 支持(构建过程支持实时编译、发布).
  • Docker 不受开发平台限制,镜像构建Linux 、 Windows桌面应用程序.
  • 支持Proton NativeMuon.
问题答案
“我想配置electron-builder”查看配置指南
“我要提问”创建issue or 常见问题
“我要报bug”创建issue
“我要赞助”赞助

在线项目实例 — onshape-desktop-shell.

安装

强烈建议使用Yarn替代npm.

yarn add electron-builder --dev

平台特有 7zip-bin-* 依赖包作为optionalDependencies, 可能需要手动安装,如果被npm认为是 非必须自动安装依赖.

开发脚手架

快速使用指南

推荐使用electron-webpack-quick-start 来构建你的开发程序.

  1. 配置 package.json文件基本的配置信息,如: — name, description, versionauthor.

  2. 配置 package.jsonElectron构建信息 :

    "build": {
      "appId": "your.id",
      "mac": {
        "category": "your.app.category.type"
      }
    }

    查看 全部配置信息.

  3. 添加 图标.

  4. 添加 构建脚本package.json文件:

    "scripts": {
      "pack": "electron-builder --dir",
      "dist": "electron-builder"
    }

    在命令行输入 yarn dist (构建可发布版本程序包 (如:.dmg, windows installer, .deb)) ,或者运行yarn pack (仅打包不可发布版本构建文件,用于本地测试).

    为了保证程序中的本地依赖总是能够匹配electron版本, 最好在package.json文件中添加一行 "postinstall": "electron-builder install-app-deps"脚本,这会在你运行yarn add之前安装正确的本地依赖版本 .

5.如果程序中有特殊的本地依赖文件(非依赖包形式), 将nodeGypRebuild 设置为true.

  1. 安装required system packages 如果你的mac系统低于macOS 10.12+.

注意默认情况下所有文件都会被打包成asar archive格式.

为保证打包后的程序可以正常的被网络用户使用, 你需要进行代码签名,参考:如何进行代码签名.

CLI 使用指南

参考 命令行界面.

代码中使用

参考 node_modules/electron-builder/out/index.d.ts. 提供TypeScript支持.

构建当前系统平台的编码格式:

"use strict"

const builder = require("electron-builder")

// 返回Promise对象
builder.build({
  config: {
   "//": "构建配置, 参考 https://goo.gl/ZhRfla"
  }
})
  .then(() => {
    // 构建成功后处理
  })
  .catch((error) => {
    // 构建失败后处理
  })

添加 win: [] 构建成windows系统默认格式安装文件.
添加 win: ["nsis-web"] 构建windows特殊格式 (web installer)安装文件.
添加 mac: [] 构建mac系统默认格式安装文件
添加 linux: [] 构建linux系统默认格式安装文件
添加 ia32: true 构建 ia32 (或 x64: true, 或 armv7l: true). 可以一次性构建多种不同格式文件.

仅打包构建可安装/发布格式文件

你可以用electron-builder仅仅将应用程序打包成AppImage, Snaps, Debian package, NSIS, macOS 安装包 (pkg)
或者其他发版安装包格式.

./node_modules/.bin/electron-builder --prepackaged <packed dir>

--projectDir (构建后安装文件存放目录) 可选配置

社区

electron-builder on Slack (please use threads).
开源 archive 无需注册即可使用.

了解更多

查看 electron-build说明文档.

快速使用指南 (可能不太准确).

报错

查看 DEBUG 不同开发环境下electron-builder的工作:

DEBUG=electron-builder

Proton Native

To package Proton Native app, set protonNodeVersion option to current or specific NodeJS version that you are packaging for.
Currently, only macOS and Linux supported.

赞助

We do this open source work in our free time. If you’d like us to invest more time on it, please donate. Donation can be used to increase some issue priority.

支持者

WorkFlowy
Tidepool

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值