如何使用 node.js 生成 zip 压缩包

JavaScript023

如何使用 node.js 生成 zip 压缩包,第1张

压缩或解压缩一个文件可以通过导流一个 fs.ReadStream 到一个 zlib 流,然后到一个 fs.WriteStream 来完成。

inp.pipe(gzip).pipe(out)

一步压缩或解压缩数据可以通过快捷方法来完成。

var buffer = new Buffer('eJzT0yMAAGTvBe8=', 'base64')

zlib.unzip(buffer, function(err, buffer) {

  if (!err) {

    console.log(buffer.toString())

  }

})

要在 HTTP 客户端或服务器中使用此模块,请在请求和响应中使用 accept-encoding 和 content-encoding 头。

JSZip 是一个用于创建、读取和编辑.zip文件的JavaScript库,且API的使用也很简单。如下是使用 JSZip 压缩一个文件夹到指定目录的例子。

zip.js 文件中内容如下:

命令:

你好,

我不知道如何直接使用Node.js代码逻辑生成tar包,但我可以给你提供一个使用Node.js调用Linux命令生成tar包的方法。

首先,在npm中有一个叫做shelljs的包,在项目中安装它:

npm i --save shelljs

然后,在执行打包任务的js文件中使用它:

var shell = require('shelljs')

if (shell.exec('tar -zvcf 文件名.tar.gz 被打包的文件(夹)').code !== 0) {

  shell.echo('Error: ...')

  shell.exit(1)

}

这样就可以在当前目录生成一个“文件名.tar.gz”的压缩包了,而“文件名”和“被打包的文件(夹)”都可以通过参数的形式进行传递。

好了,更多信息可以github上搜索shelljs,希望能解决你的问题。