跳到主要內容

Electron Forge 6 介紹

·6 分鐘閱讀

我們很高興宣布 Electron Forge v6.0.0 現在已推出!此版本標誌著 Forge 自 2018 年以來的第一個主要版本發佈,並將專案從 electron-userland 移至 Github 上的主要 electron 組織。

繼續閱讀以了解新功能以及您的應用程式如何採用 Electron Forge!

什麼是 Electron Forge?

Electron Forge 是一個用於封裝和發佈 Electron 應用程式的工具。它將 Electron 的建置工具生態系統統一到一個可擴展的介面中,以便任何人都可以立即開始製作 Electron 應用程式。

重點功能包括

  • 📦 應用程式封裝和程式碼簽署
  • 🚚 Windows、macOS 和 Linux 上的可自訂安裝程式(DMG、deb、MSI、PKG、AppX 等)
  • ☁️ 雲端供應商(GitHub、S3、Bitbucket 等)的自動化發佈流程
  • ⚡️ 適用於 webpack 和 TypeScript 的易於使用的樣板範本
  • ⚙️ 原生 Node.js 模組支援
  • 🔌 可擴展的 JavaScript 外掛程式 API
延伸閱讀

請造訪 為何選擇 Electron Forge 解釋文件,以深入了解 Forge 的理念和架構。

v6 中的新功能?

完全重寫

從 v1 到 v5,Electron Forge 都是基於現已終止的 electron-compile 專案。Forge 6 是專案的完全重寫版本,具有新的模組化架構,可以擴展以滿足任何 Electron 應用程式的需求。

在過去幾年中,Forge v6.0.0-beta 已實現與 v5 的功能對等,並且程式碼變動已大幅放緩,使該工具準備好被廣泛採用。

請勿安裝錯誤的套件

對於版本 5 及更低版本,Electron Forge 發佈到 npm 上的 electron-forge 套件。從 v6 重寫開始,Forge 的結構改為具有許多較小專案的 monorepo 專案。

官方支援

從歷史上看,Electron 維護者對於建置工具一直沒有明確的意見,將此任務留給各種社群套件。但是,隨著 Electron 作為一個專案日趨成熟,新的 Electron 開發人員越來越難以理解他們需要哪些工具來建置和發佈他們的應用程式。

為了協助引導 Electron 開發人員完成發佈流程,我們已決定讓 Forge 成為 Electron 的官方「電池內建」建置管道

在過去一年中,我們一直在緩慢地將 Forge 整合到官方 Electron 文件中,並且最近已將 Forge 從其舊家 electron-userland/electron-forge 移至 electron/forge 儲存庫。現在,我們終於準備好向一般大眾發佈 Electron Forge!

開始使用

初始化新的 Forge 專案

可以使用 create-electron-app CLI 指令碼來建立新的 Electron Forge 專案。

yarn create electron-app my-app --template=webpack
cd my-app
yarn start

該指令碼將在 my-app 資料夾中建立一個 Electron 專案,其中包含完整的 JavaScript 捆綁和預先設定的建置管道。

如需更多資訊,請參閱 Forge 文件中的 開始使用 指南。

一流的 webpack 支援

上述程式碼片段使用 Forge 的 Webpack 範本,我們建議將其作為新 Electron 專案的起點。此範本圍繞 @electron-forge/plugin-webpack 外掛程式建置,該外掛程式以多種方式將 webpack 與 Electron Forge 整合,包括

  • 使用 webpack-dev-server 增強本機開發流程,包括支援渲染器中的 HMR;
  • 在應用程式封裝之前處理 webpack 捆綁的建置邏輯;以及
  • 在 webpack 捆綁過程中新增對原生 Node 模組的支援。

如果您需要 TypeScript 支援,請考慮改用 Webpack + TypeScript 範本

匯入現有專案

Electron Forge CLI 也包含用於現有 Electron 專案的匯入命令。

cd my-app
yarn add --dev @electron-forge/cli
yarn electron-forge import

當您使用 import 命令時,Electron Forge 將新增一些核心相依性並建立新的 forge.config.js 組態。如果您有任何現有的建置工具(例如 Electron Packager、Electron Builder 或 Forge 5),它將嘗試遷移盡可能多的設定。您的一些現有組態可能需要手動遷移。

手動遷移詳細資訊可在 Forge 匯入文件 中找到。如果您需要協助,請造訪 我們的 Discord 伺服器

為何切換到 Forge?

如果您已經有用於封裝和發佈 Electron 應用程式的工具,則採用 Electron Forge 的相關優勢仍然可能超過初始切換成本。

我們認為使用 Forge 有兩個主要優勢

  1. Forge 會在應用程式建置的新功能在 Electron 中獲得支援後立即收到這些功能。在這種情況下,您無需自行加入新的工具支援,或等待其他套件最終實作該支援後再升級。如需最近的範例,請參閱 macOS 通用二進位檔ASAR 完整性檢查

  2. Forge 的多套件架構使其易於理解和擴展。 由於 Forge 由許多職責明確的較小套件組成,因此更容易追蹤程式碼流程。此外,Forge 的可擴展 API 設計意味著您可以編寫自己的額外建置邏輯,與進階使用案例的已提供組態選項分開。如需有關編寫自訂 Forge 外掛程式、建立器和發佈者的更多詳細資訊,請參閱文件中的 擴展 Electron Forge 章節。

重大變更

Forge 6 在 beta 階段花費了很長時間,其發佈節奏已逐漸放緩。但是,我們在 2022 年下半年加速了開發,並使用最近的幾個版本在 v6.0.0 穩定版本發佈之前推送了一些最終的重大變更。

如果您是 Electron Forge 6 beta 使用者,請參閱 v6.0.0 GitHub 發佈說明,以取得近期 beta 版本 (>=6.0.0-beta.65) 中所做的重大變更清單。

完整的變更和提交清單可在儲存庫的 CHANGELOG.md 中找到。

提交您的意見回饋!

告訴我們您的需求!Electron Forge 團隊一直在尋求建置專案以更好地滿足其使用者的需求。

您可以透過提交功能要求、發佈 問題 或只是讓我們知道您的意見回饋,來協助我們改進 Electron Forge!您也可以加入我們的 官方 Electron Discord 伺服器,其中有專門用於 Electron Forge 討論的頻道。

如果您想針對 https://electronforge.dev.org.tw 上的 Forge 文件提供任何意見回饋,我們有一個 GitBook 執行個體與 electron-forge/electron-forge-docs 儲存庫同步。