写点什么

客户端版本热更新

用户头像
admin
关注
发布于: 2 小时前
客户端版本热更新

流程图


实现步骤

由于 app.asar 的限制性,比如文件内只是可读,一些 node 命令不能使用等,我们经常会把一些第三方的数据库或者 dll 等文件会用到这个,简单来说就是把本来应该放在 app.asar 中的文件放入到与 app.asar 同级的 app.asar.unpacked 目录中

1、设置 app.asar.unpacked




extraResources 呢是设置 app.asar.unpacked 里面的东西,files 是设置 app.asar 里的东西,打包后如下:


2、构建增量 zip


现在我们有了app.asar.unpacked,但是我们不可能每次都进入免安装包里面手动压缩app.asar.unpacked,太麻烦了,我们这里利用打包完成的钩子,自动构建增量包。

electron-builder提供里打包完成的钩子afterPack



3、修改资源加载路径

经过以上一系列操作,发现一切很顺利,但直觉告诉我坑已经越来越近了。

不出所料,当打开 build 出来的客户端时,发现首页一片空白!



但奇怪的是 run dev 的时候竟然是正常的!找到两种模式下,入口文件的路径一对比就发现了原来是 build 后的路径变了,赶紧加上:



子窗口:



4、渲染进程增量更新



5、主进程下载-解压增量包



备份旧版本,如果解压失败进行还原



最后向渲染进程发送更新成功事件



6、监听到更新成功事件,清除缓存,重新加载


7、处理 Windows 管理员权限的问题


只需要新建一个安装目录,不要安装到 Program Files 里


  • 在 nsis 添加 include 属性:



  • 根目录新建 installer.nsh 文件,内容如下



用户头像

admin

关注

还未添加个人签名 2017.11.28 加入

还未添加个人简介

评论

发布
暂无评论
客户端版本热更新