我們很高興宣布 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
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
npm init electron-app@latest my-app -- --template=webpack
cd my-app
npm start
該指令碼將在 my-app
資料夾中建立一個 Electron 專案,其中包含完全 JavaScript 捆綁和預先設定的建置管線。
如需更多資訊,請參閱 Forge 文件中的 開始使用 指南。
匯入現有專案
Electron Forge CLI 也包含用於現有 Electron 專案的匯入命令。
cd my-app
yarn add --dev @electron-forge/cli
yarn electron-forge import
cd my-app
npm install --save-dev @electron-forge/cli
npm exec --package=@electron-forge/cli -c "electron-forge import"
當您使用 import
命令時,Electron Forge 將新增一些核心依賴項並建立新的 forge.config.js
組態。如果您有任何現有的建置工具(例如 Electron Packager、Electron Builder 或 Forge 5),它將嘗試遷移盡可能多的設定。您現有的一些組態可能需要手動遷移。
手動遷移詳細資訊可以在 Forge 匯入文件 中找到。如果您需要協助,請前往 我們的 Discord 伺服器!
為何切換到 Forge?
如果您已經有用於封裝和發布 Electron 應用程式的工具,則與採用 Electron Forge 相關聯的優勢仍然可能超過初始切換成本。
我們相信使用 Forge 有兩個主要優勢
-
Forge 會在 Electron 中支援應用程式建置的新功能後立即收到這些功能。在這種情況下,您無需自行連接新的工具支援,也無需等待其他套件最終實作該支援才能升級。如需最近的範例,請參閱 macOS 通用二進位檔 和 ASAR 完整性檢查。
-
Forge 的多套件架構使其易於理解和擴展。由於 Forge 由許多具有明確職責的較小套件組成,因此更容易遵循程式碼流程。此外,Forge 的可擴展 API 設計意味著您可以編寫自己的額外建置邏輯,與為進階用例提供的組態選項分開。如需有關編寫自訂 Forge 外掛程式、maker 和發布者的更多詳細資訊,請參閱文件中的 擴展 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 儲存庫同步。