跳到主要內容

21 篇文章標記為「專案新聞」

關於 Electron 專案的重要公告

檢視所有標籤

Electron 成為 OpenJS Foundation Impact Project

·一分鐘閱讀

今天早上在 OpenJS World,我們宣布 Electron 已正式從 OpenJS Foundation 的孵化計畫畢業,現在是 OpenJS Foundation Impact Project。

Electron 在 2019 年 12 月進入孵化計畫,當時在蒙特婁舉行的上一屆 OpenJS Foundation 全球會議上。我們很高興能以 Impact Project 的身分在 JavaScript 社群中扮演更重要的角色,並繼續與 OpenJS Foundation 合作。


了解更多資訊

您可以在 OpenJSF 網站上閱讀關於該基金會、其使命及其成員的資訊。OpenJS Foundation 託管了許多開放原始碼 JavaScript 專案,包括 jQuery、Node.js 和 webpack。它獲得了 30 家企業和終端使用者成員的支持,包括 GoDaddy、Google、IBM、Intel、Joyent 和 Microsoft。

Electron 是一個開放原始碼框架,用於使用 Web 技術建置跨平台桌面應用程式。若要深入了解 Electron 背後的人員以及他們如何協同工作,請查看我們的治理頁面

若要開始使用 Electron 本身,請瀏覽我們的文件

即將推出的 Electron 版本

·一分鐘閱讀

Electron 暫時暫停主要版本發行


發生了什麼事?

我們的主要版本發行節奏排程與 Chromium 的排程同步進行,而 Chromium 專案最近決定由於調整工作排程而暫停發行版本。這表示在 Chromium 變更節奏的期間,Electron 也將暫時暫停發行新的主要版本。

我們認為最好的選擇是追隨 Chromium 的腳步,因此在過渡期間,Electron 團隊將全職投入於錯誤修復、安全性、效能和穩定性。

我們希望確保我們的維護者和使用者的福祉在此期間都獲得優先考量,因此我們歡迎您的意見回饋,並期待恢復我們的正常發行排程。

如需更多更新,請追蹤我們的 Twitter 帳戶

編輯 (2020-03-30):Electron 9 穩定版將以 Chromium M83 為目標,並於 2020 年 5 月 19 日發行,以回應 Chromium 宣布 跳過 M82 穩定版日期並調整 M83 穩定版日期。

Electron 加入 OpenJS Foundation

·2 分鐘閱讀

在蒙特婁舉行的 Node+JS Interactive 上,OpenJS Foundation 宣布接受 Electron 加入基金會的孵化計畫。基金會致力於透過提供中立的組織來託管和維護專案,以及協同資助有益於廣大社群的活動,來支持 JavaScript 生態系統和 Web 技術的健全成長。

OpenJS Foundation 託管了許多開放原始碼 JavaScript 專案,包括 jQuery、Node.js 和 webpack。它獲得了 30 家企業和終端使用者成員的支持,包括 GoDaddy、Google、IBM、Intel、Joyent 和 Microsoft。Electron 是一個開放原始碼框架,用於使用 Web 技術建置跨平台桌面應用程式。

對於 Electron 而言,這是一個令人興奮的舉動,我們認為這是我們作為開放原始碼專案發展的下一步。


這對開發人員的意義

Electron 加入 OpenJS Foundation 不會改變 Electron 的製作、發行或使用方式 — 也不會直接影響使用 Electron 建置應用程式的開發人員。即使 Electron 最初是在 2013 年於 GitHub 建立,但目前仍由許多組織和個人維護。2019 年,Electron 將其治理結構編纂成法典,並大力投資於正式化影響整個專案的決策制定方式。我們相信,有多個組織和開發人員投入並協同合作 Electron,會使專案更加強大。

將 Electron 從單一公司實體擁有提升到專注於支持 Web 和 JavaScript 生態系統的中立基金會,是我們作為開放原始碼專案邁向成熟的自然下一步。

了解更多資訊

您可以在 OpenJSF 網站上閱讀關於該基金會、其使命及其成員的資訊。如需更多關於接受 Electron 加入 OpenJSF 孵化計畫的資訊和引言,請查看官方新聞稿。若要深入了解 Electron 背後的人員以及他們如何協同工作,請查看我們的治理頁面

若要開始使用 Electron 本身,請瀏覽我們的文件

新的 Electron 發行節奏

·3 分鐘閱讀
⚡️ 更新 (2021-07-14):我們甚至更快了!

在 2021 年第三季,Chrome 團隊將他們的發行節奏從每 6 週增加到每 4 週。Electron 的發行版本也隨之調整。請閱讀更新的 8 週節奏 部落格文章,以取得更多最新資訊!

🎉 Electron 正朝著每 12 週發行一個新的主要穩定版本邁進! 🎉


⚡️ 哇,真快!但為什麼?

簡而言之,Chromium 沒有停止發行,因此 Electron 也不會減慢速度。

Chromium 以一致的 6 週 排程 發行版本。為了在 Electron 中提供最新版本的 Chromium,我們的排程需要追蹤他們的排程。關於 Chromium 發行週期,可以在這裡找到更多資訊。

🚀 為什麼是每 12 週?

每 6 週,就會發行新的 Chromium 版本,其中包含新功能、錯誤修復/安全性修復和 V8 效能改進。Electron 的使用者一直明確表示希望及時獲得這些變更,因此我們已調整我們的穩定版本發行日期,以符合每隔一個 Chromium 穩定版本發行。首先,Electron v6.0.0 將包含 M76,並預定於 2019 年 7 月 30 日 穩定版發行,與 Chromium M76 的發行日期相同。

🚧 這對我和我的 Electron 應用程式有什麼意義?

您將比以往更快地存取新的 Chromium 和 V8 功能與修復。重要的是,您也會知道這些新變更何時會到來,因此您可以比以往更充分地規劃。

Electron 團隊將繼續支援最新的三個主要版本。例如,當 v6.0.0 於 2019 年 7 月 30 日穩定版發行時,我們將支援 v6.x、v5.x 和 v4.x,而 v3.x 將終止生命週期。

💬 應用程式意見回饋計畫

請考慮加入我們的 應用程式意見回饋計畫,以協助我們測試 Beta 版本和穩定化。參與此計畫的專案會在他們的應用程式上測試 Electron Beta 版本;作為回報,他們發現的新錯誤將優先處理以進行穩定版本發行。

📝 Electron 版本發行簡史

v3.0.0 之前的穩定版本發行決策沒有遵循排程。我們在 v3.0.0 和 v4.0.0 中為專案新增了內部排程。今年稍早,我們決定首次公開宣布 Electron v5.0.0 的穩定版本發行日期。宣布我們的穩定版本發行日期整體上獲得正面迴響,我們很高興能繼續為未來的版本發行這樣做。

為了更好地簡化這些與升級相關的工作,我們的 升級發行版本 工作小組在我們的 治理 系統中成立。它們讓我們能夠更好地優先處理和委派這項工作,我們希望隨著每個後續版本發行,這將變得更加明顯。

以下是我們的新節奏與 Chromium 節奏的比較

line graph comparing Electron versus Chromium versions

📨 如果您有任何疑問,請寄信至 info@electronjs.org 給我們。

Electron 治理

·2 分鐘閱讀

隨著 Electron 在桌面應用程式中的普及度不斷提高,從事該專案的團隊也隨之擴大:我們有更多為不同公司工作的全職維護者,他們居住在不同的時區,並且有不同的興趣。我們正在引入治理結構,以便我們能夠保持順利成長。


為什麼事情正在改變?

Electron 專案中的人員與志工、全職維護者以及所有依賴 Electron 的多家公司在全球各地的時區協調工作。到目前為止,我們透過非正式協調取得了成功;但隨著團隊的成長,我們發現這種方法無法擴展。我們也希望讓新的貢獻者更容易在專案中找到歸屬感。

工作小組

Electron 治理包括負責專案不同部分的工作小組。我們從七個小組開始

  • 社群與安全:處理 行為準則 問題。
  • 文件與工具:監督以外部為中心的工具 (例如 FiddleForge) 和 Electron 文件
  • 推廣:協助擴大 Electron 社群。
  • 發行版本:確保發行版本穩定並按計畫進行。
  • 安全性:執行安全性測試並回應安全性問題。
  • 升級:整合上游升級,例如新版本的 V8、Chromium 和 Node。
  • 網站:維護和改進 Electron 網站

這些小組將彼此協調,但每個小組都有自己的會議排程和議程,以便自行提高生產力。關於這些小組的更多詳細資訊,請參閱 治理儲存庫

這會改變 Electron 專案的方向嗎?

這不應對 Electron 的方向產生任何直接影響。如果我們的策略成功,工作小組將讓新的貢獻者更容易找到他們感興趣的主題,並透過將與他們日常工作無關的討論轉移到其他小組,使維護者的生活更輕鬆。如果發生這種情況,可能會透過讓更多暢通無阻的人員協同工作來間接影響事物。

我可以在哪裡了解更多資訊?

停止支援 32 位元 Linux

·3 分鐘閱讀

Electron 團隊將從 Electron v4.0 開始停止支援 32 位元 Linux (ia32 / i386)。最後一個支援 32 位元 Linux 安裝的 Electron 版本是 Electron v3.1,它將在 Electron v6 發行之前收到支援版本。對 64 位元 Linux 和 armv7l 的支援將繼續不變。


Electron 到底不再支援什麼?

您可能已經看過電腦上的「64 位元」和「32 位元」描述,或作為下載軟體的選項。該術語用於描述特定的電腦架構。1990 年代和 2000 年代初期製造的大多數電腦都是使用基於 32 位元架構的 CPU 製造的,而稍後製造的大多數電腦都是基於更新且功能更強大的 64 位元架構。Nintendo 64 (懂了嗎?) 和 PlayStation 2 是第一批廣泛使用的採用新架構的消費性裝置,2010 年之後銷售的電腦幾乎完全包含 64 位元處理器。因此,支援一直在縮減:Google 在 2016 年 3 月停止發行 32 位元 Linux 版 Chrome,Canonical 在 2017 年停止提供 32 位元桌面映像,並在 Ubuntu 18.10 中完全停止支援 32 位元。Arch Linux、elementary OS 和其他著名的 Linux 發行版已經停止支援老舊的處理器架構。

到目前為止,Electron 一直提供並支援在舊的 32 位元架構上執行的組建。從 v4.0 版本開始,Electron 團隊將無法再為 32 位元 Linux 提供二進位檔案或支援。

Electron 一直是一個充滿活力的開放原始碼專案,我們將繼續支援和鼓勵有興趣為特殊架構建置 Electron 的開發人員。

這對開發人員有什麼意義?

如果您目前沒有為 Linux 提供應用程式的 32 位元發行版本,則無需採取任何行動。

發行 32 位元 Linux Electron 應用程式的專案需要決定如何繼續。32 位元 Linux 將在 Electron 3 上獲得支援,直到 Electron 6 發行,這給了您一些時間來做出決策和計畫。

這對使用者有什麼意義?

如果您是 Linux 使用者,但不確定您是否正在執行基於 64 位元的系統,您很可能正在執行基於 64 位元的架構。為了確定,您可以在終端機中執行 lscpuuname -m 命令。任一命令都會列印您目前的架構。

如果您在 32 位元處理器上使用 Linux,您可能已經遇到難以找到最近發行的適用於您作業系統的軟體。Electron 團隊與 Linux 社群中的其他知名成員一起建議您升級到基於 64 位元的架構。

Node.js 原生附加元件與 Electron 5.0

·2 分鐘閱讀

如果您在使用 Electron 5.0 的原生 Node.js 附加元件時遇到問題,則它可能需要更新才能與最新版本的 V8 搭配使用。


告別 v8::Handle,您好 v8::Local

2014 年,V8 團隊棄用了 v8::Handle,轉而使用 v8::Local 作為本機控制代碼。Electron 5.0 包含一個版本的 V8,該版本最終永久移除了 v8::Handle,而仍然使用它的原生 Node.js 附加元件需要更新,才能與 Electron 5.0 搭配使用。

所需的程式碼變更非常小,但每個仍然使用 v8::Handle 的原生 Node 模組都將無法使用 Electron 5.0 建置,並且需要修改。好消息是 Node.js v12 也將包含此 V8 變更,因此無論如何,任何使用 v8::Handle 的模組都需要更新才能與即將推出的 Node 版本搭配使用。

我是原生附加元件的維護者,我可以如何協助?

如果您維護 Node.js 的原生附加元件,請確保將所有出現的 v8::Handle 替換為 v8::Local。前者只是後者的別名,因此無需進行其他變更即可解決此特定問題。

您可能也會有興趣研究 N-API,它與 V8 分開維護,是 Node.js 本身的一部分,旨在將原生附加元件與底層 JavaScript 引擎中的變更隔離。您可以在 Node.js 網站上的 N-API 文件中找到更多資訊。

救命啊!我在我的應用程式中使用原生附加元件,但它無法運作!

如果您在應用程式中使用 Node.js 的原生附加元件,並且由於此問題導致原生附加元件無法建置,請與附加元件的作者聯繫,以查看他們是否已發行修復此問題的新版本。如果沒有,聯繫作者 (或開啟提取請求!) 可能是您最好的選擇。

使用 GN 建置 Electron

·2 分鐘閱讀

Electron 現在使用 GN 建置自身。以下是關於原因的討論。


GYP 和 GN

當 Electron 在 2013 年首次發行時,Chromium 的建置組態是用 GYP 編寫的,GYP 是 "Generate Your Projects" 的縮寫。

2014 年,Chromium 專案引入了一個新的建置組態工具,稱為 GN (GN 是 "Generate Ninja" 的縮寫)。Chromium 的建置檔案已遷移到 GN,並且 GYP 已從原始程式碼中移除。

從歷史上看,Electron 在主要 Electron 程式碼libchromiumcontent 之間保持分離,libchromiumcontent 是 Electron 包裝 Chromium 的 'content' 子模組的部分。Electron 一直繼續使用 GYP,而 libchromiumcontent — 作為 Chromium 的子集 — 在 Chromium 這樣做時切換到 GN。

就像不太吻合的齒輪一樣,使用這兩個建置系統之間存在摩擦。維護相容性容易出錯,從編譯器標誌和 #defines 需要在 Chromium、Node、V8 和 Electron 之間仔細保持同步。

為了解決這個問題,Electron 團隊一直在努力將所有內容遷移到 GN。今天,從 Electron 中移除最後 GYP 程式碼的 提交 已在 master 中登陸。

這對您的意義

如果您正在為 Electron 本身做出貢獻,則從 master 或 4.0.0 簽出和建置 Electron 的過程與 3.0.0 和更早版本非常不同。請參閱 GN 建置指示 以了解詳細資訊。

如果您正在使用 Electron 開發應用程式,您可能會在新版 Electron 4.0.0-nightly 中注意到一些細微的變更;但更可能的是,Electron 建置系統的變更對您而言將完全透明。

這對 Electron 的意義

GN 比 GYP 更快,並且其檔案更易於閱讀和維護。此外,我們希望使用單一建置組態系統將減少將 Electron 升級到新版 Chromium 所需的工作。

  • 它已經大大幫助了 Electron 4.0.0 的開發,因為 Chromium 67 移除了對 MSVC 的支援,並切換為在 Windows 上使用 Clang 建置。透過 GN 建置,我們直接從 Chromium 繼承所有編譯器命令,因此我們免費獲得了 Windows 上的 Clang 建置!

  • 它也使 Electron 更容易在 Electron、Chromium 和 Node 的統一建置中使用 BoringSSL — 這在 之前是有問題的

憑證透明度修復

·2 分鐘閱讀

Electron 1.4.12 包含一個重要的修補程式,修復了一個上游 Chrome 問題,其中某些 Symantec、GeoTrust 和 Thawte SSL/TLS 憑證在 libchromiumcontent (Electron 的底層 Chrome 程式庫) 的建置時間起 10 週後被錯誤地拒絕。受影響網站上使用的憑證沒有問題,更換這些憑證也無濟於事。


在 Electron 1.4.0 — 1.4.11 中,在特定日期之後,使用這些受影響憑證的網站的 HTTPS 請求將因網路錯誤而失敗。這會影響使用 Chrome 底層網路 API (例如 window.fetch、Ajax 請求、Electron 的 net API、BrowserWindow.loadURLwebContents.loadURL<webview> 標籤上的 src 屬性等等) 發出的 HTTPS 請求。

將您的應用程式升級到 1.4.12 將防止這些請求失敗發生。

注意: 此問題是在 Chrome 53 中引入的,因此早於 1.4.0 的 Electron 版本不受影響。

影響日期

以下是每個 Electron 1.4 版本以及何時開始無法請求使用這些受影響憑證的網站的日期表。

Electron 版本影響日期
1.3.x未受影響
1.4.0已失敗
1.4.1已失敗
1.4.2已失敗
1.4.32016 年 12 月 10 日太平洋標準時間晚上 9:00
1.4.42016 年 12 月 10 日太平洋標準時間晚上 9:00
1.4.52016 年 12 月 10 日太平洋標準時間晚上 9:00
1.4.62017 年 1 月 14 日太平洋標準時間晚上 9:00
1.4.72017 年 1 月 14 日太平洋標準時間晚上 9:00
1.4.82017 年 1 月 14 日太平洋標準時間晚上 9:00
1.4.92017 年 1 月 14 日太平洋標準時間晚上 9:00
1.4.102017 年 1 月 14 日太平洋標準時間晚上 9:00
1.4.112017 年 2 月 11 日太平洋標準時間晚上 9:00
1.4.12未受影響

您可以透過提前設定電腦時鐘,然後檢查 https://symbeta.symantec.com/welcome/ 是否從中成功載入,來驗證應用程式的影響日期。

更多資訊

您可以在以下位置閱讀更多關於此主題、原始問題和修復的資訊

npm install electron

·3 分鐘閱讀

從 Electron 1.3.1 版開始,您可以 npm install electron --save-dev 在您的應用程式中安裝最新的預先編譯 Electron 版本。


npm install electron

預先建置的 Electron 二進位檔案

如果您曾經使用過 Electron 應用程式,您可能遇過 electron-prebuilt 這個 npm 套件。這個套件幾乎是每個 Electron 專案不可或缺的一部分。安裝後,它會偵測您的作業系統並下載一個預先建置好的二進制檔案,這個檔案已經編譯完成,可以在您的系統架構上運作。

新名稱

Electron 的安裝過程經常是新手開發者的一大障礙。許多勇敢的人嘗試開始開發 Electron 應用程式,他們執行 npm install electron 而不是 npm install electron-prebuilt,結果才發現(通常在非常困惑之後)這不是他們想要的 electron

這是因為在 GitHub 的 Electron 專案出現之前,npm 上就已經存在一個 electron 專案。為了讓 Electron 開發對新手開發者來說更輕鬆、更直覺,我們聯繫了現有 electron npm 套件的擁有者,詢問他是否願意讓我們使用這個名稱。幸運的是,他是我們專案的粉絲,並且同意幫助我們重新利用這個名稱。

Prebuilt 持續存在

從 1.3.1 版本開始,我們已經開始同步在 npm 上發布 electronelectron-prebuilt 套件。這兩個套件是相同的。我們選擇在一段時間內繼續以這兩個名稱發布套件,以免造成目前在專案中使用 electron-prebuilt 的數千名開發者的不便。我們建議您更新 package.json 檔案以使用新的 electron 依賴項,但我們將持續發布新版本的 electron-prebuilt 直到 2016 年底。

electron-userland/electron-prebuilt 儲存庫將仍然是 electron npm 套件的官方首頁。

衷心感謝

我們要特別感謝 @mafintosh@maxogden,以及許多其他的貢獻者,感謝他們創建和維護 electron-prebuilt,以及他們為 JavaScript、Node.js 和 Electron 社群的不知疲倦的服務。

同時感謝 @logicalparadox 允許我們接管 npm 上的 electron 套件。

更新您的專案

我們已經與社群合作,更新了受此變更影響的熱門套件。像是 electron-packagerelectron-rebuildelectron-builder 這樣的套件都已經更新,以支援新名稱,同時繼續支援舊名稱。

如果您在安裝這個新套件時遇到任何問題,請在 electron-userland/electron-prebuilt 儲存庫上開啟 issue 讓我們知道。

對於 Electron 的任何其他問題,請使用 electron/electron 儲存庫。