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 (Mar'22) | E19 (May'22) | E20 (Aug'22) | E21 (Sep'22) | E22 (Dec'22) |
---|---|---|---|---|
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 的公共时间线。
有关未来变更的更多信息,请访问 计划中的破坏性变更 页面。