原文链接: lottie-minify 针对播放场景的lottie json裁剪库
上一篇: SourceTree git 工具
下一篇: 从npm上撤销/删除自己发布的包
https://www.npmjs.com/search?q=lottie-minify
import { minify } from 'lottie-minify';
const miniData = minify(data, config);
{
copy: false, // 是否传入后拷贝, 使用JSON.parse拷贝一份
dropKeyList: defaultDropKeyList, // 需要删除的key列表
numberFixLength: 3, // 数字精度
};
主要思想是针对播放场景, 去除编辑时用的信息, 注意只能保证播放没问题, 输出的json不能用于编辑!!!!
对于蚂蚁那个简单的lottie, 在保持可以播放的情况下, 可以压缩到30%左右
lottie: old: 259352, mini:75766, del:183586, rate:29.21%
删除图层名称
限定小数精度, 一般三位就足够了, 也可以设置两位
修改id:refId映射
不对图片做处理, 图片处理太多样了, 还是自己手动来吧
https://github.com/fancy-lottie/lottie-compress/blob/master/src/main.ts
lottie-compress中对这个映射是做了两遍遍历的, 但是我直接一个dfs就能完成所有的数据修改, 由此可见数据结构和算法还是有一丢丢用处的
注意一个小问题, 播放后的json中有一些播放信息的, 不要将播放后的json传入, 遇到非法数据会直接抛出异常