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 的公开时间表。
有关未来更改的更多信息,请访问计划的重大更改页面。