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。对于开发者来说,这些更新和改进能够带来更高效、稳定的开发体验。

相关推荐
梵得儿SHI5 小时前
Vue 数据绑定深入浅出:从 v-bind 到 v-model 的实战指南
前端·javascript·vue.js·双向绑定·vue 数据绑定机制·单向绑定·v-bind v-model
消失的旧时光-19435 小时前
8方向控制圆盘View
android·前端
自由日记5 小时前
前端学习:选择器的类别
前端·javascript·学习
念念不忘 必有回响5 小时前
Nginx前端配置与服务器部署详解
服务器·前端·nginx
江城开朗的豌豆5 小时前
Webpack打包:从“庞然大物”到“精致小可爱”
前端·javascript
安当加密5 小时前
基于ASP身份认证网关实现Web系统免代码改造的单点登录方案
java·开发语言·前端
JarvanMo5 小时前
Bitrise 自动化发布 Flutter 应用终极指南(一)
前端
代码哈士奇5 小时前
使用vite+vue3+ElementPlus+pinia搭建中后台应用-前端
前端·vue3·管理系统·vite7
亿元程序员5 小时前
当一个Cocos博主被问有没有Unity教程...
前端