分享一个小程序资源打包压缩工具

288 天前
 iqoo

之前研究小程序时发现包体积有限制,较大的资源只能从 CDN 加载。为了节省 CDN 于是把一些资源打成 zip 文件在包里,运行时解压出来使用。

不过 zip 压缩率不高,和 brotli 差很多。当时小程序还不支持原生 br 解压,但有个地方涉及到 br:加载 wasm 时可以直接传入 .wasm.br 文件。于是想到一个方案:把资源打包成一个只有数据段的 wasm ,然后压缩,运行时直接从 wasm 导出对象的内存里提取。这样可借助 wasm 调用原生解压,性能很高。而且 wasm 文件头也非常小,只有几十字节。

当然现在微信小程序已支持原生 br 解压,因此无需依赖 wasm 方案,出于兼容仍可使用 .wasm.br 文件,解压时忽略 wasm 头就可以。其他小程序平台例如抖音等,目前还不支持原生 br 解压,因此 .wasm.br 的方案仍可以使用。

前几天捣鼓小程序时回想起这个方案,于是做了个小工具分享下: https://github.com/EtherDream/mini-pack

1131 次点击
所在节点    分享创造
3 条回复
realzzz
288 天前
有点意思,对文件类型有限制吗
iqoo
288 天前
@realzzz 没有限制。
convolution
287 天前
👍🏻

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/1012765

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX