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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章