原文鏈接: 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傳入, 遇到非法數據會直接拋出異常