跳至主要内容

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

关于 Electron 项目的重要公告

查看所有标签

即将发布的 Electron 版本

·阅读时长 1 分钟

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 将达到使用寿命终结。

💬 应用反馈计划

请考虑加入我们的 应用反馈计划,帮助我们测试 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 v4.0 开始,Electron 团队将停止支持 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 应用程序的项目需要决定如何继续。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::Handle 的 V8 版本,并且仍然使用它的原生 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

·阅读时长 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 的“内容”子模块的部分)之间的分离。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 中的一个问题,该问题导致在 libchromiumcontent(Electron 的底层 Chrome 库)构建时间 10 周后,某些 Symantec、GeoTrust 和 Thawte SSL/TLS 证书被错误地拒绝。受影响站点使用的证书没有问题,替换这些证书也无济于事。


在 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 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 包的所有者,询问他是否愿意让我们使用该名称。幸运的是,他是我们项目的粉丝,并同意帮助我们重新利用这个名称。

预构建版本继续存在

从 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 存储库中打开问题来告知我们。

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

Atom Shell 现已更名为 Electron

·阅读时长 2 分钟

Atom Shell 现在称为 Electron。您可以在其新主页 electronjs.org 上了解有关 Electron 及人们使用它构建的内容的更多信息。


electron

Electron 是我们最初为 Atom 编辑器 构建的跨平台应用程序外壳,用于处理 Chromium/Node.js 事件循环集成和原生 API。

当我们开始时,我们的目标不仅仅是支持文本编辑器的需求。我们还想创建一个简单的框架,让人们可以使用 Web 技术构建具有所有原生功能的跨平台桌面应用程序。

两年来,Electron 发展迅速。它现在包括自动应用程序更新、Windows 安装程序、崩溃报告、通知和其他有用的原生应用程序功能——所有这些都通过 JavaScript API 公开。我们还有更多计划。我们计划从 Atom 中提取更多库,使使用 Web 技术构建原生应用程序尽可能简单。

到目前为止,个人开发者、初创企业和大型公司都在 Electron 上构建了应用程序。他们创建了各种各样的应用程序——包括聊天应用程序、数据库浏览器、地图设计器、协作设计工具和移动原型应用程序。

查看新的 electronjs.org 以查看人们在 Electron 上构建的更多应用程序,或查看 文档 以了解有关您还可以构建的其他内容的更多信息。

如果您已经开始使用 Electron 构建应用,我们非常乐意与您聊聊。请发送邮件至 [email protected] 告诉我们更多信息。您也可以关注新的 @ElectronJS Twitter 账号,随时了解项目动态。

💙 🔌