跳至主要內容

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

關於 Electron 專案的重要公告

檢視所有標籤

Electron 成為 OpenJS Foundation 的影響力專案

·閱讀時間一分鐘

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

Electron 在 2019 年 12 月,也就是在蒙特婁舉行的上一次 OpenJS Foundation 全球會議上,進入孵化階段。我們很高興能以影響力專案的身分在 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 v4.0 開始,Electron 團隊將停止支援 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 應用程式的專案需要決定如何繼續。在 Electron 6 發布之前,Electron 3 將支援 32 位元 Linux,這讓您有一些時間做出決定和規劃。

這對使用者來說意味著什麼?

如果你是 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 是「產生你的專案」的縮寫。

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

Electron 歷來將主要的 Electron 程式碼libchromiumcontent(Electron 包裝 Chromium 的「content」子模組的部分)分開。Electron 一直使用 GYP,而 libchromiumcontent 作為 Chromium 的子集,在 Chromium 執行此動作時切換到 GN。

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

為了處理這個問題,Electron 團隊一直致力於將所有內容移至 GN。今天,從 Electron 中移除最後一個 GYP 程式碼的 commit 已登陸 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 發出的 HTTPS 請求,例如 window.fetch、Ajax 請求、Electron 的 net API、BrowserWindow.loadURLwebContents.loadURL<webview> 標籤上的 src 屬性等等。

將你的應用程式升級到 1.4.12 將可以防止這些請求失敗的情況發生。

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

影響日期

以下是每個 Electron 1.4 版本以及對使用這些受影響憑證的網站的請求開始失敗的日期的表格。

Electron 版本影響日期
1.3.x不受影響
1.4.01.4.0
1.4.11.4.0
1.4.21.4.0
1.4.3已經失敗
1.4.4已經失敗
1.4.5已經失敗
1.4.61.4.1
1.4.71.4.1
1.4.81.4.1
1.4.91.4.1
1.4.101.4.1
1.4.112016 年 12 月 10 日太平洋標準時間下午 9:00
1.4.12不受影響

1.4.2 - 1.4.11

2017 年 1 月 14 日太平洋標準時間下午 9:00

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

npm install electron

Chrome 問題 664177 的修復3 分鐘閱讀

·


npm install electron

zeke

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

預先建置的 Electron 二進位檔

如果你以前曾經開發過 Electron 應用程式,你可能已經接觸過 electron-prebuilt npm 套件。這個套件是幾乎每個 Electron 專案不可或缺的一部分。安裝後,它會偵測你的作業系統,並下載一個預先建置的二進位檔,該二進位檔會編譯為可在你系統的架構上執行。

新名稱

Electron 安裝過程通常是新開發人員的絆腳石。許多勇敢的人嘗試透過執行 npm install electron 而非 npm install electron-prebuilt 來開始開發 Electron 應用程式,結果卻發現(通常是在困惑很久之後)這不是他們正在尋找的 electron

這是因為在 npm 上存在一個現有的 electron 專案,該專案是在 GitHub 的 Electron 專案存在之前建立的。為了讓新開發人員更容易且更直觀地進行 Electron 開發,我們聯繫了現有 electron npm 套件的所有者,詢問他是否願意讓我們使用這個名稱。幸運的是,他是我們專案的粉絲,並同意協助我們重新利用這個名稱。

預先建置版本仍然存在

從 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 社群的不懈服務。

我們已與社群合作,更新受此變更影響的熱門套件。諸如 electron-packagerelectron-rebuildelectron-builder 等套件都已更新,可使用新名稱,同時繼續支援舊名稱。

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

若您在使用 Electron 時有其他問題,請使用 electron/electron 儲存庫。