Electron 发布 39 版本 ,这更新速度也变态了吧❓︎❓︎❓︎

最近在使用 NestJs 和 NextJs 在做一个协同文档 DocFlow,如果感兴趣,欢迎 star,有任何疑问,欢迎加我微信进行咨询 yunmz777

Electron 39.0.0 于 2025 年 10 月 27 日发布。此版本带来了对 Chromium、Node.js 和 V8 引擎的更新,提升了性能和稳定性,同时也引入了一些新的功能和改进。以下是此版本的详细变化。

栈升级

  • Chromium: 更新到 142.0.7444.52,这意味着 Electron 在此版本中升级了其底层浏览器引擎。该版本修复了多个性能和安全漏洞,同时引入了一些新的 Web 标准。

  • Node.js: 更新到 22.20.0,这个版本包含了许多重要的 Node.js 修复和改进,包括性能优化和一些新的 API。

  • V8: 更新到 14.2,V8 引擎的升级提升了 JavaScript 执行的效率,使得应用程序的响应速度更快,内存占用更低。

破坏性更改

在这一版本中,有几个 API 和行为发生了变化,这可能会导致与以前版本的兼容性问题。

  • OffscreenSharedTexture:此 API 的签名进行了更新,新的版本提供了一个统一的 handle,用于持有原生句柄。这意味着开发者需要调整代码,以便正确使用这个新的接口。

  • window.open:该方法的行为得到修复,确保它创建的弹出窗口始终是可调整大小的。原本可能出现的不一致性问题已经被解决,确保符合标准规范。

新特性

  • Offscreen 渲染支持 RGBAF16:Electron 现在支持以 RGBAF16 格式输出图像数据。这意味着应用程序可以更好地支持高动态范围(HDR)图像,提供更高质量的图像渲染。

  • process.getSystemMemoryInfo() 增强:在 macOS 上,getSystemMemoryInfo 方法新增了 fileBackedpurgeable 字段,这让开发者能够获得更多关于系统内存的信息,包括哪些内存是文件映射的、哪些可以被清除以释放空间。

  • systemPreferences.getAccentColor:在 Linux 上,Electron 新增了一个方法 systemPreferences.getAccentColor,它返回操作系统的强调色。这对于需要与操作系统主题颜色匹配的应用程序很有用。

  • 托盘图标 guid 选项:在 macOS 上,Tray 构造函数现在支持一个新的 guid 选项。这个选项允许托盘图标在应用程序重新启动后保持相同的位置和状态,使得用户体验更加一致。

  • WebFrameMain API 增强:Electron 新增了 webFrameMain.fromFrameToken(processId, frameToken) 方法,开发者可以通过此方法从帧令牌获取 WebFrameMain 实例,这对于需要直接操作特定帧的应用程序非常有用。

  • 可访问性支持:Electron 引入了更细粒度的可访问性支持,包括为开发者提供更多的 API 来提高对残障人士的支持。这使得应用程序能更好地满足可访问性需求,提供更加友好的用户体验。

  • app.getRecentDocuments() 支持:在 Windows 和 macOS 上,Electron 现在支持 app.getRecentDocuments() 方法。通过这个方法,开发者可以获取到最近访问的文档列表,方便实现类似于"最近使用文件"的功能。

  • USB 设备 API 更新:Electron 新增了对 USBDevice.configurations 的支持。开发者现在可以获取到连接到设备的 USB 配置信息,这对于需要与 USB 设备交互的应用程序非常有用。

  • 文件系统 API 更新:在应用程序中持久化文件系统权限状态变得更加简单。Electron 允许在给定的会话内持久化文件系统授权状态,避免用户每次打开应用时重新授权。

  • 动态导入(ESM)支持:在非上下文隔离的预加载脚本中,Electron 现在支持动态导入 ECMAScript 模块(ESM)。这使得开发者能够在 Electron 中更灵活地使用 JavaScript 模块化。

修复

  • 系统配色问题修复:修复了 systemPreferences.getAccentColor 返回的颜色反转的问题,确保返回的颜色值符合预期。

  • 开发者工具:修复了在 Wayland 上调用 webContents.openDevTools({ mode: 'detach' }) 时可能导致的崩溃问题。Wayland 是 Linux 上的一种显示协议,这个修复对于在该平台上开发的 Electron 应用程序至关重要。

  • 会话管理问题:修复了访问 webContents.session 时可能导致崩溃的问题。这个修复增强了应用程序在多会话环境下的稳定性。

  • 窗口管理:修复了在调用 window.close() 后,执行某些操作可能导致崩溃的问题。这个修复提高了窗口管理的可靠性。

  • 命令行参数问题修复:修复了通过命令行参数传递特性参数时,可能导致的崩溃问题,确保应用程序能够稳定运行。

  • 文件对话框问题修复:修复了在 Windows 上调用 dialog.showOpenDialog 时,如果传入的扩展名过滤器数组为空,可能导致的崩溃问题。

其他更改

  • 资源定位:内部的资源定位机制发生了变化,现在 Electron 使用 DIR_ASSETS 来定位资产和资源。此外,app.getPath 方法现在支持返回一个新的 "assets" 键,用于获取应用程序资源路径。

  • 文档更新:官方文档得到了更新和补充,相关的 API 和功能进行了详细说明,开发者可以参考最新的文档了解更多实现细节。

总结

Electron 39.0.0 版本主要带来了对 Chromium、Node.js 和 V8 的升级,提升了性能和稳定性。此外,新增了对 Offscreen 渲染、系统主题色、USB 设备支持等的支持,也修复了多个与窗口管理、文件对话框等相关的 bug。对于开发者来说,这些更新和改进能够带来更高效、稳定的开发体验。

相关推荐
前端甜糖6 分钟前
记录We码开发者工具的一个bug
前端·javascript
程序员黑豆16 分钟前
鸿蒙应用开发教程:以红绿灯切换为例,掌握条件渲染的核心用法
前端·harmonyos
猫32823 分钟前
echarts 日常问题解决
前端·javascript·echarts
新中地GIS开发老师27 分钟前
地信职业百科④:GIS开发工程师
前端·数据库·gis·webgis·三维gis开发
我是大卫35 分钟前
【图】React源码解析-从数据结构、调度器、源码设计模式到状态计算引擎,深挖useReducer原理
前端·react.js·源码
willes42 分钟前
列表中的倒计时组件
前端
LVZ44 分钟前
用了半年 AI 写代码,最烦的不是代码,是环境
前端·后端·开源
polaris_tl1 小时前
一行 `compress: false`,为什么让 SSE 首包恢复实时返回
前端
海边的云1 小时前
别再让 AI 瞎改代码:一套让大模型「收敛」的前端专家 Skill》
前端
kisshyshy1 小时前
给端侧大模型装上“发动机”:React 合成事件 + 进度条组件全解
前端·react.js·node.js