跳至主要内容

Electron 5.0.0

·阅读时间:4 分钟

Electron 团队很高兴地宣布发布 Electron 5.0.0!您可以通过 npm install electron@latest 使用 npm 安装它,或从我们的发行版页面下载 tarballs。此版本包含大量升级、修复和新功能。我们迫不及待地想看看您将用它们构建什么!继续阅读以了解有关此版本的详细信息,并请分享您的任何反馈!


新增功能?

Electron 的许多功能由 Chromium、Node.js 和 V8 的核心组件提供。Electron 始终与这些项目保持同步,为我们的用户提供新的 JavaScript 功能、性能改进和安全修复。在 Electron 5 中,这些软件包中的每一个都进行了主要版本升级

Electron 5 还包括对 Electron 特定 API 的改进。下面总结了主要更改;有关完整更改列表,请查看Electron v5.0.0 发行说明

Promise 化

Electron 5 继续Promise 化计划 计划,将 Electron 基于回调的 API 转换为使用 Promise。这些 API 已针对 Electron 5 进行了转换

  • app.getFileIcon
  • contentTracing.getCategories
  • contentTracing.startRecording
  • contentTracing.stopRecording
  • debugger.sendCommand
  • Cookies API
  • shell.openExternal
  • webContents.loadFile
  • webContents.loadURL
  • webContents.zoomLevel
  • webContents.zoomFactor
  • win.capturePage

macOS 的系统颜色访问

这些函数已更改或添加到 systemPreferences 以访问 macOS 系统的颜色

  • systemPreferences.getAccentColor
  • systemPreferences.getColor
  • systemPreferences.getSystemColor

进程内存信息

已添加函数 process.getProcessMemoryInfo 以获取有关当前进程的内存使用情况统计信息。

远程 API 的其他过滤

为了提高 remote API 的安全性,已添加新的远程事件,以便 remote.getBuiltinremote.getCurrentWindowremote.getCurrentWebContents<webview>.getWebContents 可以进行过滤

BrowserWindow 上的多个 BrowserViews

BrowserWindow 现在支持在同一 BrowserWindow 中管理多个 BrowserViews。

重大更改

打包应用程序的默认值

打包的应用程序现在将与默认应用程序的行为相同:将创建默认应用程序菜单(除非应用程序已有一个),并且将自动处理 window-all-closed 事件(除非应用程序处理该事件)。

混合沙箱

混合沙箱模式现在默认启用。使用 sandbox: true 启动的渲染器现在将真正沙箱化,而之前只有在也启用了混合沙箱模式时才会沙箱化。

安全改进

nodeIntegrationwebviewTag 的默认值现在为 false,以提高安全性。

拼写检查器现已异步

拼写检查 API 已更改为提供异步结果

弃用

以下 API 在 Electron 5.0.0 中已弃用,并计划在 6.0.0 中删除

arm 和 arm64 的 Mksnapshot 二进制文件

arm 和 arm64 的 mksnapshot 本机二进制文件已弃用,将在 6.0.0 中删除。可以使用 x64 二进制文件为 arm 和 arm64 创建快照。

WebContents 上的 ServiceWorker API

已弃用 WebContents 上的 ServiceWorker API,以准备将其删除。

  • webContents.hasServiceWorker
  • webContents.unregisterServiceWorker

带有沙箱化 WebContents 的自动模块

为了提高安全性,以下模块将不再支持通过require直接使用,取而代之的是需要在沙箱化的webcontents中通过remote.require包含。

  • electron.screen
  • child_process
  • fs
  • os
  • path

webFrame 隔离世界API

webFrame.setIsolatedWorldContentSecurityPolicywebFrame.setIsolatedWorldHumanReadableNamewebFrame.setIsolatedWorldSecurityOrigin已被弃用,取而代之的是webFrame.setIsolatedWorldInfo

混合沙箱

enableMixedSandbox--enable-mixed-sandbox命令行开关仍然存在以保持兼容性,但已被弃用且无效。

2.0.x版本支持结束

根据我们的支持版本策略,2.0.x版本已结束生命周期。

应用反馈计划

我们继续使用我们的应用反馈计划进行测试。参与此计划的项目会在其应用上测试Electron Beta版本;作为回报,他们发现的新错误将被优先考虑用于稳定版本。如果您想参与或了解更多信息,请查看我们关于该计划的博文

下一步

短期内,您可以期待团队继续专注于维护构成Electron的主要组件的开发,包括Chromium、Node和V8。虽然我们谨慎地不承诺发布日期,但我们的计划是大约每季度发布Electron的新主要版本,其中包含这些组件的新版本。Electron 6的初步发布计划概述了Electron 6开发生命周期中的关键日期。此外,请参阅我们的版本控制文档,以获取有关Electron版本控制的更多详细信息。

有关Electron未来版本中计划的重大更改的信息,请参阅我们的计划重大更改文档