我这人有个毛病,自己折腾出来的小玩意儿,要是不能打包成一个能双击运行的安装包,我心里就痒痒,感觉像是没穿衣服出门一样。最近这个“TS变身退魔少女”的工具,虽然名字有点中二,但功能实用,就是用TypeScript写的后台脚本,用来清我电脑里的各种缓存和垃圾文件。
从一堆文件到光盘安装的体验
以前我都是直接把编译好的那堆JS文件和配置文件扔给朋友,让他们自己去跑命令行。他们老抱怨太麻烦,我寻思,不能这样了,得专业一点,搞个真正的安装包。
动手就是折腾的开始。我第一个想到的就是用那些主流的打包工具。结果?灾难!我的项目不是纯粹的桌面应用,它依赖Node环境。我试着把Node一起捆进去,结果一个只有几百K的脚本,打包出来愣是奔着三百兆去了。我看了看那个生成的文件大小,脑袋嗡的一下,这哪是“退魔少女”,这是“肥宅少女”!
我马上就拉黑了这种方案。我需要的不是一个大包袱,而是一个轻巧的安装引导器。我开始在网上扒拉,翻那些老掉牙的论坛,发现好多前辈都在用一种简单到爆炸的脚本工具。它不负责编译,只负责封装和路径引导。
- 第一步:梳理依赖。我先把我的TS代码全部编译成干净的JS,把所有配置都扔进一个文件夹。
- 第二步:引入环境。我找到一个很小的绿色版Node环境,只保留了最核心的文件,放进我的资源包里。
- 第三步:制作引导脚本。核心的窍门就在这里,我写了个很简单的脚本,让安装程序在用户电脑上创建快捷方式时,指向一个启动器,这个启动器先调用我封装好的绿色Node,再去跑我的主程序。
这么一操作,安装包的体积立马瘦身到了几兆,效果简直是立竿见影,感觉我的“退魔少女”真的变身成功了!
更新日志:记录每一次的折腾
安装包的问题解决了,新的问题又来了:更新日志怎么搞?我希望用户在安装或更新的时候,能清楚看到我最近又修复了什么鬼bug,增加了什么新功能。
我尝试过把更新日志搞得花里胡哨,用HTML或者富文本,但每次版本迭代,去修改那些模板简直要了我的命。我果断放弃了形式主义,回归了最简单粗暴的方式:一个纯文本文件。
我的实践是这样的:
我建了一个名为“*”的文件,每次更新,我只在最顶上添加最新的版本信息和三五句话的改动说明。然后,我调整了安装脚本,在安装的一步,我加了一个小小的勾选框:“查看本次更新内容”。如果用户勾选,安装程序就调用系统默认的文本编辑器,把这个文件弹出来。
这种做法虽然土,但是效率高,维护成本低,用户也不用再去找什么隐藏菜单了。我发现,技术这东西,不是越复杂越能解决问题,用起来舒服,就是最好的方案。
至此,我的“TS变身退魔少女”终于有了体面的安装包和清晰的更新记录。看着用户双击运行安装程序,那种成就感,真叫一个踏实!下次有新点子,我还会继续记录我的折腾过程,一起分享。