Node.jsでarchiverモジュールで圧縮する方法

Node.jsでarchiverモジュールで圧縮する方法

Lambda(node.js)をどうしてもローカルで開発しないといけない状況で、デプロイくらいは自動化したいのでとりあえず圧縮についてモジュール調べてたらarchiverという便利なモジュールがありました。

var fs = require('fs');
var archiver = require('archiver');

var output = fs.createWriteStream(__dirname + '/index.zip');
var archive = archiver('zip', {zlib: { level: 9 }});

archive.on('finish', function(err){
    console.log('finish');
});
archive.on('end', function(err){
    console.log('end')
});
output.on('close', function() {
    console.log(archive.pointer() + ' bytes');
});

archive.pipe(output);
archive.glob('*'); // カレントディレクトリ直下全て
archive.finalize();

finalizeメソッドで圧縮されます。

archiverのglobメソッドの第二引数でignoreオプションを指定すると除外対象のファイルを指定することができます。

archive.glob('**/*',{'ignore':['index.zip']}); // index.zipを除外する

archiver

コメント

株式会社CONFRAGE ITソリューション事業部をもっと見る

今すぐ購読し、続きを読んで、すべてのアーカイブにアクセスしましょう。

続きを読む

タイトルとURLをコピーしました