Electron 团队刚刚发布了 Electron 6.0.0。你能够经过 npm install electron@latest 安装或从发布网站下载。新版本包含许多升级、修复和一些新功能。前端
新内容今天 Electron 项目第一次在发布 Electron 稳定版的同日发布对应的 Chrome 稳定版: https://www.chromestatus.com/features/schedulenode
Electron 的大部分功能都是由 Chromium、Node.js 和 V8 的核心组件提供的。Electron 与这些项目保持同步,为用户提供最新的 JavaScript 功能、性能改进和安全修复程序。这些包在 Electron 6 中都有主要版本更新:git
Chromium 76.0.3809.88github
74 版更新内容: https://developers.google.com/web/updates/2019/04/nic74web
75 版更新内容: https://developers.google.com/web/updates/2019/06/nic75chrome
76 版更新内容: https://developers.google.com/web/updates/2019/07/nic76shell
Node.js 12.4.0npm
Node 12.4.0 博文:
https://nodejs.org/en/blog/release/v12.4.0/小程序
V8 7.6.303.22api
V8 7.6 博文:
https://v8.dev/blog/v8-release-76
此版本还包括对 Electron API 的改进。完整列表可参阅发行说明: https://github.com/electron/electron/releases/tag/v6.0.0
下面挑一些亮点介绍:
Promise 支持Electron 6.0 继续发展从 5.0 版开始的现代化改进,改善对 Promise 的支持。
这些函数如今返回 Promise 并仍然支持旧的基于回调的调用:
contentTracing.getCategories() #16583
contentTracing.getCategories() #16583
contentTracing.getTraceBufferUsage() #16600
contents.executeJavaScript() #17312
cookies.flushStore() #16464
cookies.get() #16464
cookies.remove() #16464
cookies.set() #16464
dialog.showCertificateTrustDialog() #17181
inAppPurchase.getProducts() #17355
inAppPurchase.purchaseProduct() #17355
netLog.stopLogging() #16862
session.clearAuthCache() #17259
session.clearCache() #17185
session.clearHostResolverCache() #17229
session.clearStorageData() #17249
session.getBlobData() #17303
session.getCacheSize() #17185
session.resolveProxy() #17222
session.setProxy() #17222
webContents.hasServiceWorker() #16535
webContents.printToPDF() #16795
webContents.savePage() #16742
webFrame.executeJavaScript() #17312
webFrame.executeJavaScriptInIsolatedWorld() #17312
webviewTag.executeJavaScript() #17312
这些函数如今有两种形式,同步和基于 Promise 的异步:
dialog.showMessageBox()/dialog.showMessageBoxSync() #17298
dialog.showOpenDialog()/dialog.showOpenDialogSync() #16973
dialog.showSaveDialog()/dialog.showSaveDialogSync() #17054
这些函数如今返回 Promise:
app.dock.show() #16904
为了启用强化运行时来限制可写可执行内存和加载由其余团队 ID 签名的代码等,须要向 Helper 授予特殊代码签名权利。
为了将这些权利限定在须要它们的流程类型上,Chromium 添加了三个新的 Helper 应用程序变体:一个用于渲染器(Electron Helper(Renderer).app),一个用于 GPU 进程(Electron Helper(GPU).app) ,还有一个用于插件(Electron Helper(Plugin).app)。
使用 electron-osx-sign 对其 Electron 应用签名(codesign)的开发者不该该对其构建逻辑进行任何更改。若是你使用自定义脚本对应用签名,则应确保三个新的 Helper 应用程序已正确签名。
为了使用这些新 helper 正确打包你的应用程序,你须要使用electron-packager@14.0.4 或更高版本。若是你使用的是 electron-builder,则需参阅此处获取支持: https://github.com/electron-userland/electron-builder/issues/4104
重大改进
此版本还为从此的需求打下了基础,要求加载在渲染器进程内的原生 Node 模块要么是 N-API,要么 Context Aware。这一改进可带来更高的性能、更强的安全性和更少的维护工做量。详细信息参阅此处: https://github.com/electron/electron/issues/18397。此更改预计将在 Electron v11 中完成。
net.IncomingMessage 标头稍微改动,以更好地匹配 Node.js 行为,特别是 set-cookie 的值以及重复标头的处理方式。#17517。
shell.showItemInFolder() 如今返回 void 而且是异步调用。#17121
应用程序如今必须在使用 app.getPath('log') 以前调用新函数 app.setAppsLogPath() 来显式设置日志路径。#17841
根据官方支持政策,3.x.y 的生命周期已达终点。官方鼓励开发人员和应用程序升级到更新版本的 Electron。
应用反馈计划官方继续使用应用反馈计划进行测试。参与此计划的项目会在其应用上测试 Electron 测试版;做为回报,他们发现的新错误会在稳定版本中优先处理。若是你想参与或了解更多信息,请查看关于该计划的博客文章: https://electronjs.org/blog/app-feedback-program
将来计划短时间来看,官方团队会继续升级 Electron 的主要组件,包括 Chromium、Node 和 V8。团队计划大约每季度发布一次新版本,每次都会升级各大组件。7.0.0 版本的暂定计划(详见下方连接)列出了 Electron 7 开发周期中的关键时点。还可参阅官方版本控制文档,获取有关 Electron 版本的更多信息: https://electronjs.org/docs/tutorial/electron-versioning
7.0.0 版本的暂定计划: https://electronjs.org/docs/tutorial/electron-timelines
关于将来的 Electron 版本中计划的重大变动,请参阅重大变动计划文档: https://github.com/electron/electron/blob/master/docs/api/breaking-changes.md
英文原文: http://electronjs.org/blog/electron-6-0
活动推荐伴随着云 + 端、Serverless、小程序等的发展,必然会给前端带来更大的场景与机会。但前端领域的迭代速度之快,更需对体系及应用有总体的把握,在这个基础上深刻各个技能分支,有计划地系统学习,效率要高得多。
极客时间聚集 100+ 一线技术专家分享最佳实践,帮你提高研发综合实力。2019 已过半,除了绩效考核,该给团队充充电了。现可经过「企业帐号」进行充值,员工自主选课,团队一块儿学习提高技术实力。