2022 年维护者峰会回顾
上个月,Electron 维护者团队在加拿大温哥华会面,讨论了该项目在 2023 年及以后的发展方向。在会议室里,核心维护者和特邀合作者们用了四天时间讨论了新举措、维护痛点以及项目的整体健康状况。

合影!由 @groundwater 拍摄。
未来,团队将继续全力致力于定期快速发布 Chromium 更新、修复 bug,并让 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 提案将该框架的部分内容引入 Electron 中的 JavaScript 类,最终目标是允许开发人员为其 Electron 应用程序创建非 Web UI 元素。这将使应用程序无需拼凑 Web 内容。
使这套新 API 成熟的基础工作正在进行中。以下是我们可以在不久的将来看到的一些首批成果。
示例:使用 WebContentsView 重构窗口模型
我们计划进行的第一个更改是向 Electron 的 API 表面公开 Chrome 的 WebContentsView,它将是我们现有 BrowserView API 的继任者(尽管名称如此,但 BrowserView API 是 Electron 特有的代码,与 Chromium Views 无关)。通过公开 WebContentsView,我们将拥有一个可重用的 View 对象,可以显示 Web 内容,为使 BrowserWindow 类成为纯 JavaScript 并消除更多代码复杂性打开了大门。
虽然这个更改没有为应用开发者提供太多新功能,但它是一个大型重构,消除了大量的底层代码,简化了 Chromium 升级,并降低了主要版本之间出现新 bug 的风险。
如果您是 Electron 应用开发者,并且正在使用 BrowserViews:请放心,我们没有忘记您!我们计划将现有的 BrowserView 类变成 WebContentsView 的一个包装器,为您向较新的 API 过渡提供缓冲。
参见:electron/electron#35658
示例:使用 ScrollView 进行可滚动 Web 内容
我们 Stack 的朋友们一直在推动一项将 Chromium ScrollView 组件公开给 Electron API 的举措。有了这个新 API,任何子 View 组件都可以设置为水平或垂直滚动。
虽然这个新 API 只实现了单一的小功能,但团队的最终目标是构建一套工具性的 View 组件,可以作为工具包来构建更复杂的非 HTML 界面。
如何参与
您是对这两个 API 提案感兴趣的 Electron 应用开发者吗?虽然我们还没有准备好接收额外的 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 审查流程和增强的文档是我们正在试验的其他一些项目。我们希望在不久的将来分享更多消息!
