LoginSignup
7

More than 3 years have passed since last update.

posted at

updated at

Node.jsで指定したファイルやフォルダをZIP圧縮する方法

毎回決まった手順でZIP圧縮するのは大変ですね!
Node.jsで自動でZIP圧縮するコードを書いたのでソースコードを載せます。圧縮にはarchiverというライブラリを使います。
archive.globの引数を変えると任意のファイルを圧縮対象にすることが出来ます。
(xxxx/**/*)はサブフォルダ以下すべてのファイルを対象にするという意味になります。
ZIP圧縮作業を自動化したいときに使えますよ!

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

function zipFiles() {

    // 出力先のzipファイル名
    var zip_file_name = "src.zip";

    // ストリームを生成して、archiverと紐付ける
    var archive = archiver.create('zip', {});
    var output = fs.createWriteStream(zip_file_name);
    archive.pipe(output);

    // 圧縮対象のファイル及びフォルダ
    archive.glob('*.js');
    archive.glob('*.css');
    archive.glob('*.ico');
    archive.glob('*.html');
    archive.glob('package.json');
    archive.glob('css/**/*');
    archive.glob('fonts/**/*');
    archive.glob('images/**/*');

    // zip圧縮実行
    archive.finalize();
    output.on("close", function () {
        // zip圧縮完了すると発火する
        var archive_size = archive.pointer();
        console.log(`complete! total size : ${archive_size} bytes`);
    });
}

以上です。試してみてくださいね!

エンジニアに役立つ情報をTwitterでも発信していますので宜しければTwitterの方もフォローをよろしくお願いします!
Twitterへのリンクはコチラ

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
What you can do with signing up
7