跳转到内容

JSZip前端压缩库

JSZip 是一个用于创建、读取和编辑 .zip 文件的 JavaScript 库,支持在前端浏览器环境和 Node.js 中运行,主要用于实现前端多文件打包打包下载。

通过 npm 包装管理器安装依赖:

Terminal window
npm install jszip

以下是使用 JSZip 创建文件、文件夹以及生成压缩包的典型代码示例:

import JSZip from 'jszip';
const zip = new JSZip();
// 1. 创建文件
zip.file("hello.txt", "hello content");
// 2. 创建文件夹
zip.folder("assets");
// 3. 在嵌套路径中直接创建文件夹与文件
zip.file("assets/info.txt", "nested content");
// 4. 异步生成压缩包 (Blob 格式)
zip.generateAsync({
type: "blob",
compression: "DEFLATE", // 压缩方式。STORE:默认不压缩;DEFLATE:执行压缩
compressionOptions: {
level: 9 // 压缩级别 1~9。1 表示速度最快,9 表示最优压缩率
}
}).then((content) => {
// 成功后可在此处理 Blob 数据,例如触发浏览器下载保存
console.log("生成成功", content);
}).catch((error) => {
console.error("生成压缩包失败", error);
});