新闻中心

Sublime开发Electron应用自动更新_集成electron-updater实现静默安装

2025-12-16
浏览次数:
返回列表
Sublime Text 不是 Electron 开发环境,静默自动更新需集成 electron-updater:安装 electron-builder,主进程配置 autoUpdater.autoInstallOnAppQuit = true、autoDownload = true,并在 update-downloaded 后调用 quitAndInstall(true, true);构建时确保 publish 配置正确、含 latest.yml、代码签名及正规安装包。

sublime开发electron应用自动更新_集成electron-updater实现静默安装

Sublime Text 本身不是 Electron 应用开发环境,它只是一个代码编辑器;真正需要自动更新的是你用 Electron 开发的桌面应用。要实现“静默安装”式自动更新(即用户无感知、不弹窗、后台下载并安装),核心是正确集成 electron-updater 并配置为静默模式。下面直接讲关键点和实操步骤。

确认使用 electron-updater 而非 electron-auto-updater

electron-auto-updater 已停止维护,官方推荐且当前活跃的是 electron-updater(来自 electron-builder 生态)。它支持 GitHub、GitLab、generic HTTP 服务器等多种发布源,并原生支持静默更新逻辑。

  • 安装:运行 npm install --s*e-dev electron-builder(自动包含 electron-updater
  • 确保你的项目已用 electron-builder 打包(electron-updater 依赖其生成的 latest.yml 和签名信息)
  • 不要手动 require autoUpdater from Electron —— electron-updater 提供自己的 AutoUpdater 实例

主进程配置静默检查与安装

静默更新的关键在于:不调用 dialog.showMessageBox,不等待用户点击“重启”,而是由代码控制整个流程。需在主进程中初始化并监听事件:

  • 导入:import { autoUpdater } from 'electron-updater';
  • 设置静默行为:autoUpdater.autoInstallOnAppQuit = true;(退出时自动安装)
  • 禁用默认提示:autoUpdater.autoDownload = true;(自动下载,不询问)
  • 监听 'update-downloaded' 后立即调用 autoUpdater.quitAndInstall(true, true)
      第一个 true 表示不带对话框(silent),第二个 true 表示安装后立即重启

渲染进程触发检查(可选但推荐)

虽然可设定时自动检查,但更友好做法是在应用启动或菜单中加一个“检查更新”按钮,由用户主动触发(仍保持静默安装):

QoQo QoQo

QoQo是一款专注于UX设计的AI工具,可以帮助UX设计师生成用户角色卡片、用户旅程图、用户访谈问卷等。

QoQo 172 查看详情 QoQo
  • 主进程暴露 IPC 接口:ipcMain.handle('check-for-update', () => autoUpdater.checkForUpdates());
  • 渲染进程调用:await ipcRenderer.invoke('check-for-update');
  • 注意:即使用户点击,整个过程也不弹窗 —— 因为你没调任何 dialog,且 quitAndInstall 是静默的

构建与发布必须匹配配置

静默更新失败,80% 出在构建环节。务必检查:

  • package.jsonbuild.publish 指向正确的更新服务器(如 {"provider": "generic", "url": "https://your-domain.com/update/"}
  • 发布目录必须包含:latest.yml(由 electron-builder 自动生成)、应用安装包(如 MyApp Setup 1.2.3.exe)、以及对应哈希校验
  • Windows 下需代码签名(否则更新可能被系统拦截,静默失败);macOS 需 hardened runtime + notarization
  • 首次安装必须通过 electron-builder 生成的 installer(.exe/.dmg/.pkg),不能直接运行 .asar

基本上就这些。静默不是“完全没人知道”,而是“不打断用户”,该提示进度可以用托盘/状态栏小图标反馈,但绝不阻塞操作。配置对了,用户打开应用时可能已经跑着新版了。

以上就是Sublime开发Electron应用自动更新_集成electron-updater实现静默安装的详细内容,更多请关注其它相关文章!


# 尼克  # 重庆忠县网站建设实例  # seo搜索直播  # 阳江营销网络推广  # 天水微信营销推广公司  # 竞彩如何推广营销  # 萍乡营销推广价钱高吗  # 吉林seo查询是什么  # 湖北省律师网站推广  # 如何推广营销客户服务  # 百度推广是给做网站吗  # 也不  # 是一个  # 安装包  # 自己的  # 自动更新  # 重启  # 状态栏  # 多个  # 的是  # mac  # app  # npm  # github  # windows  # json  # git  # js  # sublime  # electron 


相关栏目: 【 科技资讯46185 】 【 网络学院92790


相关推荐: 如何使 Jest 模拟函数默认抛出错误以提高测试效率  Golang切片为何属于引用类型_Golang slice底层结构与引用语义说明  使用 Pandas 高效处理 .dat 文件:字符清理与数据计算  小米14应用无法联网原因分析_小米14网络权限修复  Excel中VLOOKUP的第四个参数是干什么用的_Excel VLOOKUP第四参数作用解析  将HTML Canvas内容转换为可上传的图像文件(File对象)  怎么在html里运行vbs脚本_html中运行vbs脚本方法【教程】  fishbowl官网免费版 fishbowl养鱼网站入口  c++ 获取系统当前时间 c++时间戳获取方法  批改网学生版PC登录 批改网官网登录系统入口  外媒分析《GTA6》定价:卖100美元可以但真没必要!  照顾宝贝2小游戏点击立即在线玩  Windows10怎么开启存储感知 Windows10系统设置自动清理临时文件释放C盘空间【教程】  sublime如何处理大型CSV文件的列对齐_sublime高级表格编辑插件指南  最新韩小圈网页版登录入口_官网在线观看官方链接  qq游戏网页版直接玩_qq游戏免下载快速入口  J*aScript实现动态背景色下的文本与按钮颜色自适应调整  在WordPress中通过REST API获取BasicAuth保护的远程文章  Go语言中JSON数据解码与字段访问指南  汽水音乐在线解析 汽水音乐在线解析入口  提升Kafka消费者健壮性:会话超时处理与消息处理语义  C++如何操作大型数据集_使用C++流式处理(Streaming)技术避免一次性加载大文件  汽水音乐在线版入口_汽水音乐网页播放手册  iCloud登录入口网页版 苹果iCloud官网登录  CSS子选择器:如何区分并样式化嵌套列表的子层级  如何高效处理PHP中的Excel数据导入导出?PortPHP/Spreadsheet助你轻松搞定!  b站如何看历史记录_b站观看历史找回方法  yy漫画网页版官方入口_yy漫画官网登录页面链接  将HTML动态表格多行数据保存到Google Sheet的教程  照顾宝贝2小游戏免费秒玩入口  html5 app怎么运行环境_配html5 app运行环境【教程】  Mac怎么使用表情符号_Mac Emoji快捷键面板  AO3最新可访问网址 Archive of Our Own官方在线入口  CKEditor 5 自定义构建在React应用中渲染失败的调试与解决  poki网页游戏推荐_poki免费游戏平台入口  win11如何卸载Windows更新补丁 Win11解决更新导致系统不稳定的问题【修复】  Golang如何使用const iota_Go iota常量计数器讲解  sublime如何优雅地处理行尾空格_sublime自动清理多余空白字符配置  如何有效阻止外部脚本意外修改内联样式的高度属性  向日葵客户端怎么进行远程CentOS控制_向日葵客户端远程CentOS控制操作教程  c++项目目录结构应该如何组织_c++工程化项目结构规范  晋江读书网页版在线登录 晋江读书电脑版官网  lar*el怎么安全地存储和获取配置文件中的敏感信息_lar*el敏感信息安全存储方法  怎么去除衣服上的口红印_生活小妙招教你用酒精轻松擦除  Yandex浏览器官方网页版入口 Yandex浏览器最新版官网  sublime怎么格式化代码_sublime代码美化与一键排版插件配置  处理动态列数据:J*a ArrayList的正确初始化与字符累加教程  MongoDB聚合管道:正确匹配对象数组中_id的方法  126邮箱网页版官方入口 126邮箱账号在线登录平台  C++如何打印当前代码行号与文件名_C++预定义宏FILE与LINE的使用 

搜索