zip压缩工具jszip--nodejs常用模块(8)

简单介绍

最近写个工具,需要将一些文件压缩到zip包里。使用nodejs调用机器上的zip命令也可以,但对机器就会有要求,需要安装zip命令。当npm上找了下,jszip和adm-zip,这两个工具都是用js实现的zip压缩和解压。adm-zip压缩工具有bug,压缩gif图片和jpg图片时,会出问题。下面主要介绍下jszip的使用
帮助文档
https://github.com/Stuk/jszip

下载的jszip工具,它的documentation目录下有api详细文档。

demo
这里只贴了代码,具体步骤参考《js,css压缩工具yuicompressor--nodejs常用模块(1)》

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'});



  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值