跳至內容

Electron

出自轻之舟百科

Electron(原名:Atom Shell)是由 GitHub 開發、現由 OpenJS Foundation 與開發者社區共同維護的開源跨平台桌面應用開發框架,基於 Chromium 渲染引擎與 Node.js 運行時構建,允許開發者使用 HTMLCSSJavaScript 等 Web 技術構建兼容 WindowsmacOSLinux 的原生桌面應用程式。[1][2][3]

Electron
外文名 Electron
別名 Atom Shell(原名)
開發者 GitHub / OpenJS Foundation
首次發布 2014年4月(beta版)
穩定版本 42.3.3(2026年)
編程語言 JavaScriptC++Python
作業系統 WindowsmacOSLinux
平台 跨平台
軟件類型 桌面應用開發框架
許可協議 MIT License
官方網站 electronjs.org
源碼倉庫 GitHub

概述

Electron 是一款開源的跨平台桌面應用開發框架,其核心架構由 Chromium 瀏覽器引擎與 Node.js 運行時環境組合而成,兩者之間通過 IPC(進程間通信)機制進行交互。[4] 開發者可藉助前端技術棧構建具備原生系統訪問能力的桌面程序,包括文件系統讀寫、系統通知調用及硬件交互等功能。[2] Electron 兼容 macOS(Monterey 及以上)、Windows 10/11 及主流 Linux 發行版,並提供 x64、ARM64 等多架構支持。[3]

歷史

Electron 的前身名為 Atom Shell,最初是 GitHub 為開發其開源文本編輯器 Atom 而構建的附屬項目。[4] 2014 年 4 月,Atom Shell 以 beta 版本形式公開發布;隨着該框架的影響力逐漸超越 Atom 本身,項目於 2015 年正式更名為 Electron,並作為獨立專案進行維護。[1] 此後,Electron 交由 OpenJS Foundation 管理,由活躍的全球貢獻者社區持續維護與迭代。[2]

技術架構

核心組成

Electron 的技術本質可概括為 ChromiumNode.js 的組合體。[4] Chromium 內核負責提供現代瀏覽器的 HTML5、CSS3 渲染能力及 JavaScript 引擎;Node.js 運行時則賦予應用訪問底層系統 API、文件系統及網絡模塊的能力。[2] 兩者通過 Electron 封裝的 IPC 模塊實現主進程(Main Process)與渲染進程(Renderer Process)之間的通信。

進程模型

Electron 採用多進程架構。主進程負責管理應用生命周期、創建瀏覽器窗口及調用原生 API;每個 BrowserWindow 實例對應獨立的渲染進程,負責頁面 UI 渲染。[2] 該模型與 Chromium 的多進程架構保持一致,可有效隔離單個窗口的崩潰風險。

功能特性

跨平台支持

Electron 提供統一的 API 抽象層,同一套代碼庫可編譯為 Windows(ia32、x64、arm64)、macOS(Intel 及 Apple Silicon)和 Linux 平台的可執行程序。[3] 其版本發布與 Chromium 大版本保持同步,確保安全補丁及時跟進。[2]

原生系統訪問

通過 Node.js 集成,Electron 應用可調用作業系統原生接口,包括自定義應用菜單、對話框、系統通知、全局快捷鍵、文件拖放及自動更新模塊(autoUpdater)等。[2]

打包與分發

Electron 社區提供 Electron Forge、electron-builder 等工具鏈,支持生成平台特定的安裝包格式,如 Windows 的 .msi / .exe、macOS 的 .dmg 以及 Linux 的 .rpm / .deb 等。[2]

典型應用

Electron 框架已被廣泛應用於消費級與企業級桌面軟件的開發,代表性應用包括:[2][3]

  • Visual Studio Code:微軟開發的跨平台原始碼編輯器
  • Atom:GitHub 推出的開源文本編輯器(Electron 的起源項目)
  • Slack:團隊協作通訊工具
  • Discord:即時通訊與社區平台
  • GitHub Desktop:GitHub 官方桌面客戶端
  • Postman:API 測試與開發工具
  • Figma:界面設計工具(桌面端)
  • Microsoft Teams(舊版):微軟協作平台

爭議與評價

Electron 因基於 Chromium 內核,常被批評應用體積較大且內存佔用較高。[5] 部分廠商因此轉向更輕量的替代方案,如微軟新版 Teams 即從 Electron 遷移至 Microsoft Edge WebView2 以提升性能並減少內存消耗。[6] 儘管如此,Electron 憑藉 Web 技術棧的低門檻、豐富的 npm 生態及活躍的社區支持,仍是當前跨平台桌面開發的主流方案之一。[5]

參考文獻