跳到主要内容

2022 年维护者峰会回顾

·5 分钟阅读

上个月,Electron 的维护者团队在加拿大温哥华会面,讨论了 2023 年及以后项目的方向。在会议室的四天里,核心维护者和受邀的合作者讨论了新的倡议、维护痛点和整体项目健康状况。

合影!由 @groundwater 拍摄。

未来,团队仍将 पूरी力于定期和快速发布 Chromium 升级,修复错误,并使 Electron 对每个人都更安全和高性能。我们还有一些令人兴奋的项目正在进行中,很乐意与社区分享!

变革性的新 API

Electron 项目中需要达成共识的重大 API 提案需要经过请求评论 (RFC) 流程,该流程由我们的 API 工作组成员进行审查。

今年,我们推进了两项重大的提案,这些提案有可能为 Electron 应用解锁新的功能维度。这些提案具有高度实验性,但这里先睹为快,了解一下有哪些值得期待!

新的原生插件增强功能 (C API)

该提案概述了一个新的 Electron C API 层,该层将允许应用开发者编写自己的原生 Node 插件,这些插件可以与 Electron 的内部资源进行交互,类似于 Node 自己的 Node-API。有关拟议的新 API 的更多信息可以在这里找到

示例:使用 Chromium 资源增强应用

许多 Electron 应用维护自己的分支,以便直接与 Chromium 内部组件进行交互,而这些组件在普通的(未修改的)Electron 中是无法访问的。通过在 C API 层中公开这些资源,这段代码可以作为原生模块与 Electron 一起存在,从而可能减轻应用开发者的维护负担。

公开 Chromium 的 UI 层 (Views API)

在底层,Chrome 用户界面 (UI) 的非网站部分,例如工具栏、标签页或按钮,是使用名为 Views 的框架构建的。Views API 提案将此框架的部分内容作为 JavaScript 类引入 Electron,最终目标是允许开发者为他们的 Electron 应用程序创建非 Web UI 元素。这将防止应用不得不拼凑 Web 内容。

使这组新 API 成为可能的基础工作目前正在进行中。以下是您在不久的将来可以期待的一些首批事项。

示例:使用 WebContentsView 重构窗口模型

我们计划的第一个更改是将 Chrome 的 WebContentsView 公开到 Electron 的 API 表面,这将是我们现有 BrowserView API(尽管名称如此,但它是特定于 Electron 的代码,与 Chromium Views 无关)的继任者。随着 WebContentsView 的公开,我们将拥有一个可重用的 View 对象,它可以显示 Web 内容,为将 BrowserWindow 类变成纯 JavaScript 并消除更多代码复杂性打开了大门。

尽管此更改并未为应用开发者提供许多新功能,但它是一项大型重构,可以消除底层的大量代码,简化 Chromium 升级,并降低主要版本之间出现新错误的风险。

如果您是在您的应用中使用 BrowserView 的 Electron 开发者:请不要担心,我们没有忘记您!我们计划将现有的 BrowserView 类作为 WebContentsView 的 shim,以便在您过渡到较新的 API 时提供缓冲。

参见:electron/electron#35658

示例:使用 ScrollView 实现可滚动 Web 内容

我们的朋友 Stack 一直在推动一项倡议,将 Chromium ScrollView 组件公开到 Electron 的 API。有了这个新的 API,任何子 View 组件都可以水平或垂直滚动。

尽管这个新的 API 只实现了一个较小的功能,但团队的最终目标是构建一套实用程序 View 组件,这些组件可以用作构建更复杂的非 HTML 界面的工具包。

参与进来

您是 Electron 应用开发者,对这些 API 提案中的任何一个感兴趣吗?尽管我们还没有完全准备好接收更多的 RFC,但请继续关注未来更多的详细信息!

Electron Forge v6 稳定版发布

自框架诞生以来,Electron 的构建工具生态系统在很大程度上是社区驱动的,并且由许多小型单用途软件包组成(例如 electron-winstaller、electron-packager、electron-notarize、electron-osx-sign)。尽管这些工具运行良好,但用户将一个可用的构建管道拼凑在一起仍然令人生畏。

为了帮助为 Electron 开发者构建更友好的体验,我们构建了 Electron Forge,这是一个将所有现有工具组合到一个统一界面的多合一解决方案。尽管 Forge 自 2017 年以来一直在开发中,但该项目在过去几年中一直处于休眠状态。然而,鉴于社区对 Electron 中构建工具状态的反馈,我们一直在努力发布下一代稳定的 Forge 主要版本。

Electron Forge 6 具有一流的 TypeScript 和 Webpack 支持,以及一个可扩展的 API,允许开发者创建自己的插件和安装程序。

敬请关注:公告即将发布

如果您有兴趣使用 Forge 构建项目,或者使用 Forge 的可扩展第三方 API 构建模板或插件,请关注我们本月晚些时候发布的关于 Forge v6 稳定版的官方公告!

接下来是什么?

除了以上内容,团队一直在思考一系列探索性项目,以使 Electron 体验对于应用开发者和最终用户来说更好。更新工具、API 审查流程和增强的文档是我们正在尝试的其他事情。我们希望在不久的将来有更多消息可以分享!