更新记录
1.0.0(2026-11-05) 下载此版本
1.0.0
- 首个版本,功能可用
平台兼容性
pk-zip 压缩解压套件
纯 JS zip/gzip 打包解包:手写 zip 容器协议(local header + central directory + EOCD)+ vendored pako 2.1.0(MIT AND Zlib)deflate 引擎。全端可用,与系统 unzip/node zlib 双向互通。
为什么做它
uniapp 生态没有纯 JS 的 zip 方案:原生插件要付费/编译,plus.zip 仅 App 端且能力有限。pk-zip 三端一致:导出记录、打包日志、离线资源包全场景覆盖。CRC32 逐条校验,坏包快速失败不产出脏数据。
快速上手
import zip from '@/uni_modules/pk-zip/js_sdk/index.js';
// 打包(字符串 / Uint8Array 混合,中文文件名 UTF-8 标记)
const z = zip.zipText({
'说明.txt': '中文内容',
'data.json': JSON.stringify({ ok: 1 }),
'binary.bin': someUint8Array
});
// z.entries → [{ name, method: 'deflate'|'store', size, compressedSize, crc32 }]
// 解包
const u = zip.unzip(z.blob, { text: true }); // text:true 附带 UTF-8 解码
// 或快捷版
const files = zip.unzipText(z.blob).files; // { '说明.txt': '中文内容', ... }
// 单流 gzip(日志/接口压缩)
const g = zip.gzip('要压缩的内容');
const back = zip.gunzip(g.data);
全部方法
| 方法 | 说明 |
|---|---|
zip(entries, opts) |
打包。entries: [{ name, data }];opts: { level 0-9, date, compress:false } |
unzip(blob, { text }) |
解包 → [{ name, data, method, size }] |
zipText(files, opts) |
快捷:{ 'a.txt': '内容' } → zip |
unzipText(blob) |
快捷:全部转字符串 → { 'a.txt': '内容' } |
gzip(data) / gunzip(data) |
gzip 单流,返回压缩率 |
deflate(data) / inflate(data) |
zlib 容器单流 |
stats(blob) |
元信息:条目数、原始/打包大小、压缩率、文件名清单(不解压) |
selfCheck() |
中英文/二进制/空文件/深路径回环自检 |
互通验证(本插件测试即证)
- 我们的 zip → 系统
unzip命令解压 ✓ - 系统
zip压的包 → 我们解压 ✓ - 我们的 gzip → node
zlib.gunzipSync✓;node gzip → 我们解 ✓ - CRC32 与标准向量(
"123456789"→0xCBF43926)及 node zlib 一致 ✓
错误码
E-ZP-01 缺文件名 · E-ZP-03 数据过短 · E-ZP-04 无 EOCD(不是 zip/已损坏) · E-ZP-08 未知压缩方法 · E-ZP-09 CRC/长度校验失败
边界说明:不支持 zip64(>4GB)、加密 zip、分卷 — 覆盖移动端 99% 场景,遇到即快速失败不产脏数据。
示例工程
example/ 为完整可跑工程。在线文档:https://plugins.cnajiu.cn/public/pk-zip.html

收藏人数:
下载插件并导入HBuilderX
下载插件ZIP
赞赏(0)
下载 3
赞赏 0
下载 12744577
赞赏 1959
赞赏
京公网安备:11010802035340号