到ZIP整个目录,我需要使用压缩的Node.js的整个目录我目前使用node-zip,并且每次进程运行时都会生成一个无效的ZIP文件(如您在this Github issue中看到的那样)。需要了解如何使用Node.js
是否有其他更好的,Node.js的选项,让我拉上了一个目录?
编辑:我结束了使用的参数archiver
writeZip = function(dir,name) {
var zip = new JSZip(),
code = zip.folder(dir),
output = zip.generate(),
filename = ['jsd-',name,'.zip'].join('');
fs.writeFileSync(baseDir + filename, output);
console.log('creating ' + filename);
};
样本值:
dir = /tmp/jsd-<randomstring>/
name = <randomstring>
UPDATE:对于那些询问我用的实现,here's a link to my downloader:
良好的通话@booyaa。谢谢。 – commadelimited 2013-03-26 16:09:54
有人在Twitter上建议child_process API,并简单地调用系统ZIP:http://nodejs.org/api/child_process.html – commadelimited 2013-03-26 16:12:01
我已经试过child_process方法。它有两个警告。 ** 1)** UNIX'zip'命令包括在压缩文件的当前工作目录的所有父文件夹的层次结构。这对你可能没问题,这不适合我。以某种方式改变child_process中的当前工作目录不会影响结果。 ** 2)**为了克服这个问题,你必须使用'pushd'跳进你将压缩的文件夹和'拉链-r',但因为'pushd'内置的bash,而不是/ bin/sh的你还需要使用/ bin/bash。在我的具体情况下,这是不可能的。只是一个头。 – johnozbay 2016-12-07 19:15:35