跳转到主要内容

Electron 39.0.0

·阅读时长 4 分钟

Electron 39.0.0 已发布!它包括对 Chromium 142.0.7444.52、V8 14.2 和 Node 22.20.0 的升级。


Electron 团队很高兴地宣布 Electron 39.0.0 发布!您可以通过 npm 使用 npm install electron@latest 进行安装,或从我们的发布网站下载。请继续阅读以获取此版本的详细信息。

如果您有任何反馈,请通过 BlueskyMastodon 与我们分享,或加入我们的社区 Discord!Bug 和功能请求可以在 Electron 的问题跟踪器中报告。

重要变更

技术栈变更

Electron 39 将 Chromium 从 140.0.7339.41 升级到 142.0.7444.52,将 Node.js 从 22.18.0 升级到 v22.20.0,将 V8 从 14.0 升级到 14.2

ASAR 完整性功能升级为稳定版

一个长期存在的“实验性”功能——ASAR 完整性——现在在 Electron 39 中稳定了。当您启用此功能时,它会在运行时根据构建时哈希验证您打包的 app.asar,以检测任何篡改。如果不存在哈希或哈希不匹配,应用程序将强制终止。

有关此功能如何工作、如何在您的应用程序中使用以及如何在 Electron Forge 和 Electron Packager 中使用的完整信息,请参阅ASAR 完整性文档

在相关新闻中,Electron Packager v19 现在默认启用 ASAR。#1841

新特性与改进

  • 添加了 app.isHardwareAccelerationEnabled()#48680
  • 为离屏渲染添加了支持 scRGB HDR 颜色空间的 RGBAF16 输出格式。#48504
  • 添加了用于启用更精细辅助功能支持管理的方法。#48625
  • 添加了对 USBDevice.configurations 的支持。#47459
  • 添加了使用 systemPreferences.getAccentColor 在 Linux 上检索系统主题色的功能。#48628
  • 允许在给定会话中持久化文件系统 API 授予状态。#48326 (也在37, 38 中)
  • 在非上下文隔离的预加载脚本中支持动态 ESM 导入。#48488 (也在37, 38 中)
  • ASAR 完整性功能标记为稳定版。它以前是实验性的。#48434

破坏性变更

已弃用:--host-rules 命令行开关

Chromium 正在弃用 --host-rules 开关。

您应该改用 --host-resolver-rules

行为变更:window.open 弹窗始终可调整大小

根据当前的 WHATWG 规范window.open API 现在将始终创建可调整大小的弹窗。

要恢复以前的行为

webContents.setWindowOpenHandler((details) => {
return {
action: 'allow',
overrideBrowserWindowOptions: {
resizable: details.features.includes('resizable=yes'),
},
};
});

行为变更:共享纹理 OSR paint 事件数据结构

使用共享纹理离屏渲染功能时,paint 事件现在会发出一个更结构化的对象。它将 sharedTextureHandleplanesmodifier 移入统一的 handle 属性。有关更多详细信息,请参阅OffscreenSharedTexture 文档

36.x.y 版本停止支持

根据项目支持政策,Electron 36.x.y 已达到停止支持的期限。建议开发者和应用程序升级到较新版本的 Electron。

E39 (25年10月)E40 (26年1月)E41 (26年2月)
39.x.y40.x.y41.x.y
38.x.y39.x.y40.x.y
37.x.y38.x.y39.x.y

下一步计划

短期内,您可以预期团队将继续专注于跟进构成 Electron 的主要组件(包括 Chromium、Node 和 V8)的开发。

您可以在此处找到 Electron 的公开时间线

有关未来变更的更多信息,请参阅计划中的破坏性变更页面。