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

合影! 由 @groundwater 拍摄。
展望未来,团队仍将全力致力于定期快速地升级 Chromium、修复错误,并使 Electron 对所有人来说更安全、性能更好。 我们还有一些令人兴奋的项目正在进行中,很高兴能与社区分享!
变革性的新 API
Electron 项目中需要达成共识的主要 API 提案,会经过征求意见稿 (RFC) 流程,由我们的 API 工作组成员进行评审。
今年,我们推进了两项主要提案,它们有望为 Electron 应用开启全新的功能维度。 这些提案仍处于高度实验阶段,但这里可以先睹为快!
新的原生插件增强功能 (C API)
该提案概述了 Electron C API 的新层,这将允许应用开发者编写自己的原生 Node 插件,这些插件可以与 Electron 的内部资源交互,类似于 Node 自己的 Node-API。 关于提议的新 API 的更多信息可在此处找到。
示例:利用 Chromium 资源为应用加速
许多 Electron 应用会维护自己的分支 (fork) 以直接与 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 升级,并降低了主要版本之间出现新错误的风险。
如果您是使用 BrowserViews 的 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 评审流程和增强的文档是我们正在试验的其他事项。 我们希望在不久的将来能分享更多消息!