跳到主要内容

Electron 20.0.0

·4 分钟阅读

Electron 20.0.0 已发布!它包括升级到 Chromium 104、V8 10.4 和 Node.js 16.15.0。请阅读下文了解更多详细信息!


Electron 团队很高兴宣布 Electron 20.0.0 发布!您可以使用 npm 通过 npm install electron@latest 安装,或从我们的发布版本网站下载。请继续阅读以了解此版本的详细信息,并请分享您的任何反馈!

显著变化

新特性

  • 在 Windows 上添加了沉浸式深色模式。 #34549
  • 添加了面板式行为支持。窗口可以浮动在全屏应用之上。 #34665
  • 更新了 Windows 控件覆盖按钮,使其在 Windows 11 上看起来和感觉更原生。 #34888
  • 渲染器现在默认处于沙箱环境,除非指定了 nodeIntegration: truesandbox: false#35125
  • 使用 nan 构建原生模块时添加了保障措施。 #35160

技术栈变化

重大变更和 API 变更

以下是 Electron 20 中引入的重大变更。有关这些和未来变更的更多信息,请参阅计划中的重大变更页面。

默认变更:未指定 nodeIntegration: true 的渲染器默认处于沙箱环境

之前,指定了 preload 脚本的渲染器默认不在沙箱环境。这意味着 preload 脚本默认可以访问 Node.js。在 Electron 20 中,这个默认设置已更改。从 Electron 20 开始,渲染器将默认处于沙箱环境,除非指定了 nodeIntegration: truesandbox: false

如果您的 preload 脚本不依赖 Node,则无需任何操作。如果您的 preload 脚本依赖 Node,请重构它们以从渲染器中移除 Node 的使用,或为相关渲染器明确指定 sandbox: false

修复:nan 原生模块中的自发崩溃

在 Electron 20 中,我们更改了与原生模块相关的两项内容:

  1. V8 头文件现在默认使用 c++17。此标志已添加到 electron-rebuild 中。
  2. 我们修复了一个问题,即缺失的包含文件会导致依赖 nan 的原生模块中出现自发崩溃。

为了获得最高稳定性,建议在重建原生模块时使用 node-gyp >=8.4.0 和 electron-rebuild >=3.2.9,特别是依赖 nan 的模块。有关更多信息,请参阅 electron #35160 和 node-gyp #2497

移除:Linux 上的 .skipTaskbar

在 X11 上,skipTaskbar 会向 X11 窗口管理器发送 _NET_WM_STATE_SKIP_TASKBAR 消息。Wayland 没有直接对应的功能,而且已知的替代方案存在不可接受的权衡(例如 GNOME 中的 Window.is_skip_taskbar 需要不安全模式),因此 Electron 无法在 Linux 上支持此功能。

17.x.y 结束支持

根据项目的支持政策,Electron 17.x.y 已达到支持结束日期。建议开发者和应用程序升级到更新版本的 Electron。

E18 (22 年 3 月)E19 (22 年 5 月)E20 (22 年 8 月)E21 (22 年 9 月)E22 (22 年 12 月)
18.x.y19.x.y20.x.y21.x.y22.x.y
17.x.y18.x.y19.x.y20.x.y21.x.y
16.x.y17.x.y18.x.y19.x.y20.x.y
15.x.y--------

后续计划

短期内,您可以期待团队继续专注于跟进构成 Electron 的主要组件(包括 Chromium、Node 和 V8)的开发。尽管我们谨慎地不承诺具体发布日期,但我们的计划是大约每 2 个月发布一个包含这些组件新版本的主要 Electron 版本。

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

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