跳转到主要内容

21 篇打上“项目新闻”标签的文章

关于 Electron 项目的重要公告

查看所有标签

Electron 成为 OpenJS 基金会影响力项目

·一分钟阅读

今天上午在 OpenJS World 上,我们宣布 Electron 已正式完成 OpenJS 基金会的孵化计划,并成为 OpenJS 基金会的重要项目。

Electron 于 2019 年 12 月在蒙特利尔举行的上一次 OpenJS 基金会全球大会上进入孵化阶段。作为重要项目,我们很高兴能在 JavaScript 社区中扮演更重要的角色,并继续与 OpenJS 基金会合作。


了解更多

您可以在 OpenJSF 网站上了解该基金会、其使命及其成员。OpenJS 基金会托管着包括 jQuery、Node.js 和 webpack 在内的众多开源 JavaScript 项目。它得到了 30 个企业和最终用户成员的支持,包括 GoDaddy、Google、IBM、Intel、Joyent 和 Microsoft。

Electron 是一个开源框架,用于使用 Web 技术构建跨平台桌面应用程序。要了解有关 Electron 背后的开发人员以及他们如何协同工作的更多信息,请查看我们的 治理页面

要开始使用 Electron 本身,请查看 我们的文档

即将发布的 Electron 版本

·一分钟阅读

Electron 暂时暂停重大版本发布


发生了什么?

我们的 主要版本发布周期时间表 与 Chromium 同步,而 Chromium 项目最近决定 暂停发布,这是由于调整了工作计划。这意味着在 Chromium 调整发布周期的这段时间里,Electron 也将暂时暂停新的主要版本发布。

我们认为最好的选择是跟随 Chromium 的步伐,因此在此期间,Electron 团队将转为全职投入到 Bug 修复、安全、性能和稳定性工作中。

我们希望在此期间能优先考虑维护者和用户的福祉,因此我们欢迎您的反馈,并期待恢复正常的发布计划。

更多更新,请关注我们的 Twitter 账号

编辑(2020-03-30):Electron 9 稳定版将以 Chromium M83 为目标,并于 2020 年 5 月 19 日发布,以响应 Chromium 跳过 M82 稳定日期并调整 M83 稳定日期 的公告。

Electron 加入 OpenJS 基金会

·阅读时间 2 分钟

在蒙特利尔的 Node+JS Interactive 活动上,OpenJS 基金会宣布已接受 Electron 加入该基金会的孵化项目。该基金会致力于通过提供一个中立的组织来托管和维护项目,以及为整个社区的利益共同资助活动,从而支持 JavaScript 生态系统和 Web 技术的健康发展。

OpenJS 基金会托管了许多开源 JavaScript 项目,包括 jQuery、Node.js 和 webpack。它得到了 30 家企业和最终用户成员的支持,包括 GoDaddy、Google、IBM、Intel、Joyent 和 Microsoft。Electron 是一个使用 Web 技术构建跨平台桌面应用程序的开源框架。

这对 Electron 来说是一个令人兴奋的举措,我们认为这是我们作为开源项目发展的下一步。


这对开发者意味着什么

Electron 加入 OpenJS 基金会并不会改变 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 将达到生命周期结束 (End-Of-Life)。

💬 应用反馈计划

请考虑加入我们的应用反馈计划,以帮助我们测试 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 治理

·3 分钟阅读

随着 Electron 在桌面应用程序中越来越受欢迎,开发团队也随之壮大:我们拥有更多来自不同公司、居住在不同时区、拥有不同兴趣的全职维护者。我们正在引入一种治理结构,以便我们能够持续平稳地发展。


为什么会发生改变?

Electron 项目中的人员与世界各地的志愿者、全职维护者以及数家依赖 Electron 的公司进行跨时区协调。到目前为止,我们一直通过非正式协调取得了成功;但随着团队的壮大,我们发现这种方法无法扩展。我们还希望让新的贡献者更容易在项目中找到归属感。

工作组

Electron 的治理结构包含了负责项目不同部分的工作组。我们首先设立了七个小组:

  • 社区与安全 (Community & Safety):处理行为准则相关问题。
  • 文档和工具:负责面向外部的工具(例如 FiddleForge)和 Electron 文档
  • 外联 (Outreach):帮助发展 Electron 社区。
  • 发布 (Releases):确保版本发布稳定且准时。
  • 安全 (Security):进行安全测试并响应安全问题。
  • 升级 (Upgrades):整合上游更新,例如新版本的 V8、Chromium 和 Node。
  • 网站 (Website):维护和改进 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 位”的描述。这个术语用来描述一种特定的计算机架构。20 世纪 90 年代和 21 世纪初的大部分计算机都基于 32 位架构的 CPU 制造,而之后的大部分计算机则基于更新、更强大的 64 位架构。任天堂 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 3 将在 Electron 6 发布之前支持 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,它作为 Node.js 本身的一部分与 V8 分开维护,旨在使原生插件不受底层 JavaScript 引擎变化的影响。您可以在 Node.js 网站上的 N-API 文档中找到更多信息。

救命!我的应用程序中使用了原生插件,但它无法工作!

如果您的应用程序中使用了 Node.js 的原生插件,并且由于此问题导致原生插件无法构建,请联系插件作者,看他们是否发布了修复此问题的新版本。如果没有,联系作者(或者打开一个 Pull Request!)可能是您最好的选择。

使用 GN 构建 Electron

·3 分钟阅读

Electron 现在使用 GN 进行构建。这里讨论了原因。


GYP 和 GN

Electron 最初发布于 2013 年,当时 Chromium 的构建配置是用 GYP 编写的,它是“Generate Your Projects”的缩写。

2014 年,Chromium 项目引入了一个名为 GN(“Generate Ninja”的缩写)的新构建配置工具。Chromium 的构建文件已迁移到 GN,并从源代码中删除了 GYP。

Electron 历来将主 Electron 代码libchromiumcontent 分开,后者是 Electron 封装 Chromium“内容”子模块的部分。Electron 继续使用 GYP,而 libchromiumcontent 作为 Chromium 的一个子集,在 Chromium 切换时也切换到了 GN。

就像齿轮不能完全啮合一样,使用这两种构建系统会产生摩擦。从需要在 Chromium、Node、V8 和 Electron 之间仔细保持同步的编译器标志和 #defines,维护兼容性容易出错。

为了解决这个问题,Electron 团队一直致力于将所有内容迁移到 GN。今天,从 Electron 中删除最后一个 GYP 代码的提交已合并到主分支。

这对您意味着什么

如果您正在为 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——这在 以前是问题

证书透明度修复

·3 分钟阅读

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 中引入的,因此 Electron 1.4.0 之前的版本不受影响。

影响日期

下表列出了每个 Electron 1.4 版本以及使用受影响证书的网站请求开始失败的日期。

Electron 版本影响日期
1.3.x不受影响
1.4.0已失败
1.4.1已失败
1.4.2已失败
1.4.32016 年 12 月 10 日下午 9:00 PST
1.4.42016 年 12 月 10 日下午 9:00 PST
1.4.52016 年 12 月 10 日下午 9:00 PST
1.4.62017 年 1 月 14 日下午 9:00 PST
1.4.72017 年 1 月 14 日下午 9:00 PST
1.4.82017 年 1 月 14 日下午 9:00 PST
1.4.92017 年 1 月 14 日下午 9:00 PST
1.4.102017 年 1 月 14 日下午 9:00 PST
1.4.112017 年 2 月 11 日下午 9:00 PST
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 的安装过程常常是新开发人员的绊脚石。许多勇敢的开发者试图通过运行 npm install electron 而不是 npm install electron-prebuilt 来开始 Electron 应用程序的开发,结果却发现(通常在经历了很多困惑之后)这并不是他们想要的 electron

这是因为在 npm 上存在一个现有的 electron 项目,它是在 GitHub 的 Electron 项目存在之前创建的。为了帮助新开发者更容易、更直观地进行 Electron 开发,我们联系了现有 electron npm 包的所有者,询问他是否愿意让我们使用这个名称。幸运的是,他很喜欢我们的项目,并同意帮助我们重新利用这个名称。

Prebuilt 将继续存在

从 1.3.1 版本开始,我们已开始同时发布 electronelectron-prebuilt npm 包。这两个包是完全相同的。我们选择在一段时间内继续以这两个名称发布包,以免给成千上万目前在其项目中使用 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 仓库。