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 提案将该框架的一部分作为 JavaScript 类引入 Electron,最终目标是允许开发者为他们的 Electron 应用创建非 Web UI 元素。这将避免应用需要拼凑网页内容。
使这组新 API 成为可能的基础工作正在进行中。以下是您近期可以期待的首批成果中的一些。
示例:使用 WebContentsView
重构窗口模型
我们计划的首个变更是将 Chrome 的 WebContentsView 暴露给 Electron 的 API 表面,它将是现有 BrowserView API(尽管名字如此,但它是 Electron 特有的代码,与 Chromium Views 无关)的继任者。通过暴露 WebContentsView,我们将拥有一个可重用的 View 对象来显示网页内容,这为将 BrowserWindow 类完全由 JavaScript 实现并进一步消除代码复杂性打开了大门。
尽管这项变更不会为应用开发者带来太多新功能,但它是一项大型重构,消除了底层大量代码,简化了 Chromium 升级,并降低了主要版本之间出现新 Bug 的风险。
如果您是 Electron 开发者并在应用中使用 BrowserViews:不用担心,我们没有忘记您!我们计划让现有的 BrowserView 类成为 WebContentsView 的垫片 (shim),以便在您过渡到新 API 时提供缓冲。
参见:electron/electron#35658
示例:使用 ScrollView
实现可滚动网页内容
我们在 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 评审流程和增强的文档。希望在不久的将来能分享更多消息!