用Trae Work搞定微信小程序数据zip压缩备份
之前使用WorkBuddy+Trae 持续开发的微信小程序集成几个工具应用,但是里面的备份还原都是json、csv格式的纯数据备份还原,工具使用中产生的图片文件没有一起备份,导致备份效果大打折扣。在网上研究了下发现可以使用jszip来实现微信小程序数据的压缩解压,然后就有了这篇使用Trae开发微信小程序数据压缩备份的实践文章!本文将会带你实操一步步实现压缩备份还原功能(过程贴图可能会比较多)~
一、开始说出你的需求
我这个是在Trae已经开发了一些其他功能基础上发的指令,已经有一些项目相关的上下文,如果你是全新的项目需要让Trae帮你开发备份功能可以先增加提示词“请充分了解这个微信小程序项目,并输出项目文档(包括但不限于架构、功能、数据存储方式、api请求方式)”让AI先了解下项目,然后再开发备份功能。
我是直接复制了想要加备份功能的页面,然后明确让他使用分包开发,相当于这个备份功能单独分包也不会影响到其他业务代码!指令如下:
我想在小程序设置页面pages/profile/settings 的 “清理缓存”下面增加 “增强备份” 可以备份还原小程序完整数据,点击后打开的是一个 分包开发的增强备份 页面;这个页面可以备份完整小程序的storage数据、用户文件系统数据,以及还原。 备份时需要处理成zip压缩包,请帮我先分析实现方案 最好压缩能使用开源的压缩方案,有不明确的可以及时与我沟通

结果它自己分析了下没有与我沟通直接开干了,看来还是很有自信的嘛,这把我估计稳了!
二、调试→修复→调试→修复……
1、出师不利
不出意外的话果然出意外了,上来2连错小程序首页报错、点击增强备份页面报错,好家伙看不懂也没事直接丢给Trae 让它给你解决。

虽然错误看不懂,它解决问题的总结内容还是要看的,这不发现它居然把jszip文件放到主包下面了,这跟我预期的不太一样啊,后面让它把这个js文件也放分包了,分包就应该一家人整整齐齐的 独立成包,干嘛要引用主包的依赖。
2、我给的误导(埋下的雷)
上面改完后点击页面基本没发现新错误,但是我没着急测试备份还原功能,而是根据我的“理解”跟它探讨了技术方案(我以为小程序的临时缓存文件目录可以读写,就给了这个注定错误方案)。

上面它按我的指令修改后,我还是没开始测试备份还原功能,又跟Trae继续聊着呢,关于ios兼容性和js放分包都给我改好了。

到这里为止感觉差不多了,可以开始测试备份还原功能了。
3、朴实无华的测试
正式开始备份测试,先是在开发者工具的模拟器上测试的,遇到错误直接复制控制台的给AI解决就行,VibeCoding嘛,复制粘贴永不过时。

测试的时候连续报错、不明所以,直到看到上图红框里的“permission denied”心想不太妙啊!这么关键的问题要解决必须找到问题的关键!只能上大招,去微信官方文档找找让AI帮我解释解释,原来我前面埋下的雷在此时“绽放了”,压缩备份只能操作用户文件的写入。

修改后测试还有一些报错陆续让它解决就ok了。里面有个要注意的是它每次备份后都会生成一个zip备份文件,备份次数越多备份文件占用的空间就越大,这显然太浪费空间且不合理了,就让它只保留一份!

测试还原也是一样,另外需要注意的是最好是使用真机测试备份还原,因为在开发者工具模拟器上备份分享是不完全支持的。
三、功成名就
zip压缩备份还原终于是完成了,后面又让Trae修改了一些交互,必须得夸下有AI真不错!再总结一些开发中的小事吧~
1、开发者工具中调试微信小程序的缓存文件在哪?
路径很长找起来比较麻烦,我是直接使用everything 这个小软件搜索文件名字搜出来的,测试备份还原以及观察AI的文件写入逻辑务必要知道缓存文件、用户文件在哪里。不然AI乱写用户文件、存冗余文件会导致空间浪费,尤其是像我这种纯离线工具的小程序,空间是寸土寸金。


微信开发者工具的模拟器长时间不关闭重启,可能会影响测试备份还原 提示空间已满,这是需要你关闭重启或清理缓存才行。
2、数据备份要排除特殊数据
我这边一开始是把localstorage和用户文件系统的文件全部压缩备份,但是正常业务的token、id等跟用户微信&登录信息强相关的数据也可能存在storage里面,备份时就需要排除!避免备份文件发给别的用户还原后发生用户id 冒充的问题。最后记得让AI更新相关开发文档(这算个人的习惯吧)。

3、 AI的“事后总结”必须看
不会写代码看错误信息没事,事情做完后的总结请务必仔细看(AI 做事的过程我也会看),随着项目的增多你就看的越多、潜意识中也能得到学习提升。


扫码体验小程序30+离线可用的工具(本文备份还原功能体验:关于 – 程序设置 – 增强备份)
发表评论