var JSZip = require('jszip');
var fs = require('fs');
var zip = new JSZip();

zip.file('test.txt', 'hello there');
zip.folder("images/img").file("201.gif", fs.readFileSync("../../source/img/201.gif"));
zip.folder("images/img").file("199.jpg", fs.readFileSync("../../source/img/199.jpg"));
zip.folder("images/img").file("weibo.png", fs.readFileSync("../../source/img/weibo.png"));
zip.folder("images/js").file("navigation.js", fs.readFileSync("../../source/js/navigation.js"));
var data = zip.generate({base64:false,compression:'DEFLATE'});
fs.writeFile('demo.zip', data, 'binary', function(){
    console.log('success');
});

生成的demo.zip的目录结构:
demo.zip
|--test.txt
|--images
|    |--img
|    |    |--201.gif
|    |    |--199.jpg
|    |    |--weibo.png
|    |--js
|    |    |--navigation.js

参数说明

这个工具api很多,这里就不列出来,详细信息看官方文档吧。但在使用过程中,发现官方文档有个问题,这里记录下。
对于generate方法options参数中base64属性,默认值为true(官方文档说默认值为false);指定为true或不指定时,生成的zip包会有问题,后续使用这个api时记得加一下就好。

var data = zip.generate({base64:false,compression:'DEFLATE'});
Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐