跳到主要内容

21 篇带有“项目新闻”标签的文章

关于 Electron 项目的重要公告

查看所有标签

Electron 成为 OpenJS 基金会影响项目

·一分钟阅读

今天上午在 OpenJS World 上,我们宣布 Electron 已正式从 OpenJS 基金会的孵化计划毕业,现在是 OpenJS 基金会的影响项目。

Electron 在 2019 年 12 月于蒙特利尔举行的上届 OpenJS 基金会全球会议上进入孵化阶段。我们很高兴作为影响项目在 JavaScript 社区中发挥更大的作用,并继续与 OpenJS 基金会合作。


了解更多

您可以在 OpenJSF 网站上了解有关该基金会、其使命及其成员的更多信息。OpenJS 基金会托管着许多开源 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 基金会

·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

📨 如果您有疑问,请发送邮件至 [email protected]

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 位”的描述,或者作为下载软件的选项。该术语用于描述特定的计算机架构。20 世纪 90 年代和 21 世纪初制造的大多数计算机都使用基于 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 3 上将支持 32 位 Linux,直到 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 感兴趣,它作为 Node.js 的一部分与 V8 分开维护,旨在使原生插件免受底层 JavaScript 引擎更改的影响。您可以在 Node.js 网站上的 N-API 文档中找到更多信息。

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

如果您在应用程序中使用 Node.js 的原生插件,并且由于此问题导致原生插件无法构建,请与该插件的作者联系,以查看他们是否已发布修复该问题的新版本。如果没有,则联系作者(或 打开拉取请求!)可能是您的最佳选择。

使用 GN 构建 Electron

·2 分钟阅读

Electron 现在使用 GN 构建自身。以下是关于原因的讨论。


GYP 和 GN

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

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

Electron 在历史上一直保持着主要的 Electron 代码libchromiumcontent(Electron 中包装 Chromium 的 “content” 子模块的部分)之间的分离。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 的支持,转而使用 Clang 在 Windows 上进行构建。使用 GN 构建,我们可以直接从 Chromium 继承所有编译器命令,因此我们免费获得了 Windows 上的 Clang 构建!

  • 它还使 Electron 更容易在 Electron、Chromium 和 Node 中使用统一构建中的 BoringSSL,这在以前是 有问题的

证书透明度修复

·2 分钟阅读

Electron 1.4.12 包含一个重要的补丁,该补丁修复了上游 Chrome 的一个问题,即某些 Symantec、GeoTrust 和 Thawte SSL/TLS 证书在 libchromiumcontent 的构建时间起 10 周后会被错误地拒绝,而 libchromiumcontent 是 Electron 的底层 Chrome 库。受影响站点上使用的证书没有问题,更换这些证书无济于事。


在 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.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 安装过程通常是新开发人员的绊脚石。许多勇敢的人试图通过运行 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 社区所做的孜孜不倦的服务。

并感谢 @logicalparadox 允许我们接管 npm 上的 electron 包。

更新您的项目

我们已与社区合作,更新了受此更改影响的常用软件包。诸如 electron-packagerelectron-rebuildelectron-builder 之类的软件包已更新,可在继续支持旧名称的同时使用新名称。

如果您在安装这个新软件包时遇到任何问题,请在 electron-userland/electron-prebuilt 存储库上提出问题告知我们。

对于 Electron 的任何其他问题,请使用 electron/electron 存储库。