11
7

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

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

Last updated at Posted at 2019-08-22

毎回決まった手順で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へのリンクはコチラ

11
7
0

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
  3. You can use dark theme
What you can do with signing up
11
7

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?