跳转到主要内容

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

关于 Electron 项目的重要公告

查看所有标签

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

·一分钟阅读

今天上午在OpenJS World上,我们宣布Electron已正式从OpenJS基金会的孵化计划中毕业,并成为OpenJS基金会的一个Impact Project(影响力项目)。

Electron于2019年12月在蒙特利尔的上次OpenJS基金会全球大会上进入孵化阶段。我们很高兴作为Impact Project在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 团队将转为全职投入到 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版本;反过来,他们发现的新bug在稳定发布中将优先处理。

📝 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,它独立于V8进行维护,是Node.js本身的一部分,旨在使原生插件免受底层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'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的支持,并转向使用Clang在Windows上进行构建。通过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仓库上打开一个问题,让我们知道。

有关 Electron 的任何其他问题,请使用 electron/electron 仓库。