跳转到主要内容

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、英特尔、Joyent 和微软。

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、英特尔、Joyent 和微软。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 将达到生命周期结束。

💬 应用反馈计划

请考虑加入我们的 应用反馈计划,以帮助我们测试我们的 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 位架构。任天堂 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,它与 V8 分开维护,作为 Node.js 本身的一部分,旨在使原生插件免受底层 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 之间保持分离,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 发出的 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 包的所有者,询问他是否愿意让我们使用这个名称。幸运的是,他是我们项目的粉丝,并同意帮助我们重新利用这个名称。

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 仓库。