Node.jsを使用してディレクトリ全体を圧縮する必要があります。私は現在node-zipを使用しており、プロセスが実行されるたびに無効なZIPファイルが生成されます(このGithubの問題からわかるように)。
ディレクトリをZIP圧縮できる別の優れたNode.jsオプションはありますか?
編集:私はアーカイバーを使用してしまいました
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>
更新:私が使用した実装について質問する人のために、ここに私のダウンローダーへのリンクがあります:
zip
コマンドは、現在の作業ディレクトリのすべての親フォルダ階層を圧縮ファイルに含めます。これはあなたにとっては大丈夫かもしれませんが、私にとってはそうではありませんでした。また、child_processの現在の作業ディレクトリを変更しても、結果には影響しません。 2)この問題を克服するために、あなたが使用する必要がありpushd
ますが、ジッパーするフォルダに飛び込むとするzip -r
が、以来、pushd
bashのではなく/ binに/ shのに組み込まれています。また、使用/ binに/ bashをする必要があります。私の特定のケースでは、これは不可能でした。頭を上げただけです。
child_process.exec
apiでは、コマンドを実行する場所からcwdを指定できます。CWDを変更すると、親フォルダー階層の問題が修正されます。また、不要な問題も修正されpushd
ます。child_processをお勧めします。