2022 年维护者峰会回顾
上个月,Electron 的维护者团队在加拿大温哥华会面,讨论了该项目 2023 年及以后的发展方向。在会议室里,核心维护者和受邀的合作者进行了为期四天的讨论,讨论了新的倡议、维护痛点和一般的项目健康状况。
展望未来,该团队仍将全力致力于发布定期和快速的 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 提案将此框架的部分内容作为 Electron 中的 JavaScript 类引入,最终目标是允许开发人员为 Electron 应用创建非 Web UI 元素。这将防止应用不得不拼凑 Web 内容。
实现这组新 API 的基础工作目前正在进行中。以下是您可以在不久的将来看到的一些首批内容。
示例:使用 WebContentsView
重构窗口模型
我们计划的第一个更改是将 Chrome 的 WebContentsView 公开到 Electron 的 API 表面,这将取代我们现有的 BrowserView API(尽管名称如此,但它是与 Chromium Views 无关的 Electron 特定代码)。通过公开 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 审查流程和增强的文档是我们正在尝试的其他内容。我们希望在不久的将来分享更多消息!