各位,关于electron的增量更新业内有什么好的方案,目前有个思路:
1. 构建阶段通过dsdiff等工具生成diff文件
2. 用户请求更新时请求到diff文件,然后patch上
3. 可能会存在的一下问题:
a. 如何patch,在windows上可能有权限问题,目前想到的点是通过其他语言实现(如rust)一个二进制文件来关闭electron,等patch完成后,再次打开electron
b. mac上的上patch会存在一些问题,主要是electron framework中的一些软链会丢失
针对问题b分析:
主要原因是在diff的时候有些库不能同时满足下面的条件:
1. 不能满足基于文件夹的diff, 像bsdiff,xdelta这些就不支持,他们只能基于单个的文件的diff
2. 能满足基于文件夹的diff,但是不能不处理文件夹内部的元数据如软件
所以问问大佬针对问题b有什么好的思路,或者其他方案,一起参考参考也行
1. 构建阶段通过dsdiff等工具生成diff文件
2. 用户请求更新时请求到diff文件,然后patch上
3. 可能会存在的一下问题:
a. 如何patch,在windows上可能有权限问题,目前想到的点是通过其他语言实现(如rust)一个二进制文件来关闭electron,等patch完成后,再次打开electron
b. mac上的上patch会存在一些问题,主要是electron framework中的一些软链会丢失
针对问题b分析:
主要原因是在diff的时候有些库不能同时满足下面的条件:
1. 不能满足基于文件夹的diff, 像bsdiff,xdelta这些就不支持,他们只能基于单个的文件的diff
2. 能满足基于文件夹的diff,但是不能不处理文件夹内部的元数据如软件
所以问问大佬针对问题b有什么好的思路,或者其他方案,一起参考参考也行
![[呲牙]](http://lf-web-assets.juejin.cn/obj/juejin-web/xitu_juejin_web/img/jj_emoji_2.cd1e2bd.png)
展开
评论
1