Electron 20.0.0
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: true或sandbox: false,否则渲染器现在默认处于沙箱模式。 #35125 - 在使用 nan 构建原生模块时添加了安全措施。 #35160
堆栈变化
- Chromium
104 - Node.js
16.15.0 - V8
10.4
破坏性变更 & API 变更
以下是 Electron 20 中引入的破坏性更改。有关这些更改以及未来更改的更多信息,请参阅 计划中的破坏性更改 页面。
默认更改:没有 nodeIntegration: true 的渲染器默认处于沙箱模式
以前,指定了预加载脚本的渲染器默认未沙盒化。这意味着默认情况下,预加载脚本可以访问 Node.js。在 Electron 20 中,此默认设置已更改。从 Electron 20 开始,除非指定了 nodeIntegration: true 或 sandbox: false,否则渲染器默认将已沙盒化。
如果您的预加载脚本不依赖于 Node,则无需任何操作。如果您的预加载脚本确实依赖于 Node,那么要么重构它们以从渲染器中移除 Node 的使用,要么为相关渲染器明确指定 sandbox: false。
修复:nan 原生模块中的自发崩溃
在 Electron 20 中,我们更改了两个与原生模块相关的项目:
- V8 头文件现在默认使用
c++17。这个标志已添加到 electron-rebuild 中。 - 我们修复了一个问题,即一个缺失的 include 会导致依赖 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.y | 19.x.y | 20.x.y | 21.x.y | 22.x.y |
| 17.x.y | 18.x.y | 19.x.y | 20.x.y | 21.x.y |
| 16.x.y | 17.x.y | 18.x.y | 19.x.y | 20.x.y |
| 15.x.y | -- | -- | -- | -- |
接下来是什么
短期内,您可以期待团队继续专注于跟上构成 Electron 的主要组件(包括 Chromium、Node 和 V8)的开发。 尽管我们谨慎地不承诺发布日期,但我们的计划是大约每 2 个月发布包含这些组件新版本的新 Electron 主要版本。
您可以在 此处 找到 Electron 的公共时间线。
有关未来变更的更多信息,请参见 计划中的破坏性变更 页面。
