Electron 团队很高兴地宣布 Electron 5.0.0 发布!您可以通过 npm install electron@latest
使用 npm 安装它,或者从我们的发布页面下载压缩包。此版本包含大量升级、修复和新功能。我们迫不及待地想看看您用它们构建了什么!继续阅读以了解有关此版本的详细信息,并请分享您对它的任何反馈!
新增功能?
Electron 的许多功能由 Chromium、Node.js 和 V8 的核心组件提供。Electron 与这些项目保持同步,为我们的用户提供新的 JavaScript 功能、性能改进和安全修复。这些软件包中的每一个在 Electron 5 中都有一个主要版本更新。
- Chromium
73.0.3683.119
- Node.js
12.0.0
- V8
7.3.492.27
。
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.getBuiltin
、remote.getCurrentWindow
、remote.getCurrentWebContents
和<webview>.getWebContents
。
BrowserWindow 上的多个 BrowserViews
BrowserWindow 现在支持在同一个 BrowserWindow 中管理多个 BrowserViews。
重大更改
打包应用程序的默认值
打包的应用程序现在将与默认应用程序的行为相同:除非应用程序已有一个默认应用程序菜单,否则将创建一个默认应用程序菜单,并且除非应用程序处理该事件,否则将自动处理window-all-closed
事件。
混合沙箱
混合沙箱模式现在默认启用。使用sandbox: true
启动的渲染器现在将真正处于沙箱状态,而以前只有在也启用了混合沙箱模式时才会处于沙箱状态。
安全改进
为了提高安全性,nodeIntegration
和 webviewTag
的默认值现在为 false
。
拼写检查器现在异步
SpellCheck 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.setIsolatedWorldContentSecurityPolicy
、webFrame.setIsolatedWorldHumanReadableName
、webFrame.setIsolatedWorldSecurityOrigin
已弃用,取而代之的是 webFrame.setIsolatedWorldInfo
。
混合沙箱
enableMixedSandbox
和 --enable-mixed-sandbox
命令行开关仍然存在以保持兼容性,但已弃用且无效。
2.0.x 版本支持结束
根据我们的支持版本策略,2.0.x 已达到生命周期结束。
应用反馈计划
我们继续使用我们的 应用反馈计划 进行测试。参与此计划的项目在其应用上测试 Electron 测试版;作为回报,他们发现的新错误将被优先考虑用于稳定版本。如果您想参与或了解更多信息,请 查看我们关于该计划的博客文章。
下一步
短期内,您可以期待团队继续专注于跟上构成 Electron 的主要组件(包括 Chromium、Node 和 V8)的开发。虽然我们谨慎地不对发布日期做出承诺,但我们的计划是大约每季度发布包含这些组件新版本的新主要版本的 Electron。该6.0.0 预计发布计划概述了 Electron 6 开发生命周期中的关键日期。此外,请参阅我们的版本控制文档,以获取有关 Electron 版本控制的更多详细信息。
有关 Electron 未来版本中计划的重大更改的信息,请 参阅我们的计划重大更改文档。