48 个带有“Release”标签的文章
关于 Electron 新发布的博客文章
查看所有标签Electron 39.0.0
Electron 39.0.0 已发布!它包括对 Chromium 142.0.7444.52、V8 14.2 和 Node 22.20.0 的升级。
Electron 团队很高兴地宣布 Electron 39.0.0 的发布!您可以使用 npm 通过 npm install electron@latest 安装它,或从我们的 发布网站 下载它。继续阅读以了解此版本的详细信息。
如果您有任何反馈,请在 Bluesky 或 Mastodon 上与我们分享,或加入我们的社区 Discord!错误和功能请求可以在 Electron 的 问题跟踪器 中报告。
值得注意的变化
ASAR 完整性已升级到稳定版
一个长期存在的“实验性”功能——ASAR 完整性——现在在 Electron 39 中稳定了。当您启用此功能时,它会在运行时根据构建时哈希验证您打包的 app.asar,以检测任何篡改。如果不存在哈希或哈希不匹配,应用程序将强制终止。
请参阅 ASAR 完整性文档,了解有关该功能如何工作、如何在应用程序中使用它以及如何在 Electron Forge 和 Electron Packager 中使用它的完整信息。
相关新闻,Electron Packager v19 现在默认启用 ASAR。 #1841
Electron 38.0.0
Electron 37.0.0
Electron 37.0.0 已发布!其中包括对 Chromium 138、V8 13.8 和 Node 22.16.0 的升级。
Electron 团队很高兴地宣布 Electron 37.0.0 的发布!您可以使用 npm 通过 npm install electron@latest 安装它,或从我们的 发布网站 下载它。继续阅读以了解此版本的详细信息。
如果您有任何反馈,请在 Bluesky 或 Mastodon 上与我们分享,或加入我们的社区 Discord!错误和功能请求可以在 Electron 的 问题跟踪器 中报告。
谷歌夏季实习生计划开始
我们的两位 谷歌夏季实习生计划 贡献者已经开始了编码阶段!
- @nilayarya 正在 Electron 核心中构建一个新的 保存/恢复窗口状态 API。新的 API 将提供一种内置的、标准化的方式来处理窗口状态持久性。请参阅 Nilay 正在进行的 RFC:electron/rfcs#16。
- @hitarth-gg 正在努力使用 Chrome Manifest V3 API 现代化长期休眠的 Devtron 扩展。该项目将为开发人员提供工具,以调试 IPC 通信、跟踪事件侦听器以及可视化 Electron 应用程序中的模块依赖关系。
对于我们的 GSoC 参与者来说,这是激动人心的几周,敬请期待更多更新!
值得注意的变化
平滑圆角:原生 CSS Squircles
Electron 37 引入了自定义的 -electron-corner-smoothing CSS 属性,它允许应用程序创建更平滑的圆角以匹配 Apple 的 macOS 设计语言。此功能最初在 Electron 36 中推出,但我们认为它值得更亮的聚光灯。
| 代码 | 结果 |
|---|---|
|
与仅从矩形中雕刻四分之一圆角的标准 border-radius 属性不同,-electron-corner-smoothing 会将曲线平滑地过渡到具有连续周长的 squircle 形状。
您可以使用 0% 到 100% 的值调整平滑度,或者使用 system-ui 值以匹配操作系统的样式(macOS 上为 60%,否则为 0%)。此设计增强功能可应用于边框、轮廓和阴影,为您的应用程序增添一丝精致。
请参阅 @clavin 的 RFC 0012,了解有关 Electron squircle 实现的更多信息。该文档更详细地介绍了动机和技术实现。
最初的设计灵感来自 Figma 的圆角平滑实现。请参阅他们的“绝望地寻找 squircles”了解更多信息。
Electron 36.0.0
Electron 36.0.0 已发布!它包含了对 Chromium 136、V8 13.6 和 Node 22.14.0 的升级。
Electron 团队很高兴地宣布 Electron 36.0.0 版本发布!您可以使用 npm 通过 npm install electron@latest 安装它,或从我们的 发布网站 下载。继续阅读以了解此版本的详细信息。
如果您有任何反馈,请在 Bluesky 或 Mastodon 上与我们分享,或加入我们的社区 Discord!错误和功能请求可以在 Electron 的 问题跟踪器 中报告。
值得注意的变化
写作工具支持
在 Electron 36 中,您可以启用 macOS 系统级别的功能,例如写作工具(拼写和语法检查)、自动填充和“服务”菜单项,在您的上下文菜单中。为此,将 WebFrameMain 实例传递给 menu.popup() 的 frame 参数。
import { BrowserWindow, Menu, WebFrameMain } from 'electron';
const currentWindow = BrowserWindow.getFocusedWindow();
const focusedFrame = currentWindow.webContents.focusedFrame;
const menu = Menu.buildFromTemplate([{ label: 'Copy', role: 'copy' }]);
menu.popup({
window: currentWindow,
frame: focusedFrame,
});
Electron 35.0.0
Electron 35.0.0 已发布!它包括对 Chromium 134.0.6998.44、V8 13.5 和 Node 22.14.0 的升级。
Electron 团队很高兴地宣布 Electron 35.0.0 的发布!您可以使用 npm 通过 npm install electron@latest 安装它,或从我们的 发布网站 下载它。继续阅读以了解此版本的详细信息。
如果您有任何反馈,请在 Bluesky 或 Mastodon 上与我们分享,或加入我们的社区 Discord!错误和功能请求可以在 Electron 的 问题跟踪器 中报告。
值得注意的变化
服务工作程序预加载脚本,以改善扩展支持
最初在 RFC #8 中由 @samuelmaddock 提出,Electron 35 添加了将预加载脚本附加到 Service Workers 的能力。由于 Chrome 的 Manifest V3 扩展通过 扩展服务工作程序 路由大量工作,此功能填补了 Electron 对现代 Chrome 扩展的支持空白。
在会话级别以编程方式注册预加载脚本时,现在可以使用 ses.registerPreloadScript(script) API 将其专门应用于 Service Worker 上下文。
// Add our preload realm script to the session.
session.defaultSession.registerPreloadScript({
// Our script should only run in service worker preload realms.
type: 'service-worker',
// The absolute path to the script.
script: path.join(__dirname, 'extension-sw-preload.js'),
});
此外,IPC 现在可在 Service Worker 及其附加的预加载脚本之间通过 ServiceWorkerMain.ipc 类进行。预加载脚本仍将使用 ipcRenderer 模块与其 Service Worker 进行通信。有关更多详细信息,请参阅原始 RFC。
此功能之前有许多其他更改为其奠定了基础
Electron 34.0.0
Electron 34.0.0 已发布!其中包括对 Chromium 132.0.6834.83、V8 13.2 和 Node 20.18.1 的升级。
Electron 团队很高兴地宣布 Electron 34.0.0 的发布!您可以使用 npm 通过 npm install electron@latest 安装它,或从我们的 发布网站 下载它。继续阅读以了解此版本的详细信息。
如果您有任何反馈,请在 Bluesky 或 Mastodon 上与我们分享,或加入我们的社区 Discord!错误和功能请求可以在 Electron 的 问题跟踪器 中报告。
值得注意的变化
HTTP 压缩共享字典管理 API
HTTP 压缩允许 Web 服务器在数据被浏览器接收之前对其进行压缩。现代版本的 Chromium 支持 Brotli 和 Zstandard,这些是比 gzip 等旧方案性能更好的新型压缩算法,适用于文本文件。
自定义共享字典进一步提高了 Brotli 和 Zstandard 压缩的效率。请参阅 Chrome for Developers 博客上的共享字典,了解更多信息。
@felixrieseberg 在 #44950 中添加了以下 API,以在会话级别管理共享字典
session.getSharedDictionaryUsageInfo()session.getSharedDictionaryInfo(options)session.clearSharedDictionaryCache()session.clearSharedDictionaryCacheForIsolationKey(options)
无响应渲染器 JavaScript 调用堆栈
Electron 的 unresponsive 事件发生在渲染器进程挂起过长时间时。由 @samuelmaddock 在 #44204 中添加的新 WebFrameMain.collectJavaScriptCallStack() API 允许您从关联的 WebFrameMain 对象(webContnets.mainFrame)收集 JavaScript 调用堆栈。
此 API 在导致进程挂起的长时间运行 JavaScript 事件的情况下,可以帮助确定框架无响应的原因。有关更多信息,请参阅 提议的网络标准崩溃报告 API。
const { app } = require('electron');
app.commandLine.appendSwitch(
'enable-features',
'DocumentPolicyIncludeJSCallStacksInCrashReports',
);
app.on('web-contents-created', (_, webContents) => {
webContents.on('unresponsive', async () => {
// Interrupt execution and collect call stack from unresponsive renderer
const callStack = await webContents.mainFrame.collectJavaScriptCallStack();
console.log('Renderer unresponsive\n', callStack);
});
});
此 API 需要启用 'Document-Policy': 'include-js-call-stacks-in-crash-reports' 标头。请参阅 #45356,了解更多详细信息。
Electron 33.0.0
Electron 32.0.0
Electron 32.0.0 已发布! 此版本包含了对 Chromium 128.0.6613.36、V8 12.8 和 Node 20.16.0 的升级。
Electron 团队很高兴地宣布 Electron 32.0.0 的发布!您可以使用 npm 通过 npm install electron@latest 安装它,或从我们的 发布网站 下载它。继续阅读以了解此版本的详细信息。
如果您有任何反馈,请在 Twitter 或 Mastodon 上与我们分享,或加入我们的社区 Discord!错误和功能请求可以在 Electron 的 问题跟踪器 中报告。
值得注意的变化
- 添加了新的 API 版本历史记录到我们的文档中,此功能由 @piotrpdev 作为谷歌夏季实习生计划的一部分创建。您可以在 此博客文章 中了解更多信息。 #42982
- 移除了 Web File API 中非标准的 File.path 扩展。 #42053
- 将 Web File System API 中的失败路径与尝试在被阻止的路径中打开文件或目录时的上游对齐。 #42993
- 将以下现有的导航相关 API 添加到
webcontents.navigationHistory:canGoBack、goBack、canGoForward、goForward、canGoToOffset、goToOffset、clear。 之前的导航 API 现在已被弃用。 #41752



