Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationEventAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
3
Help us understand the problem. What are the problem?

More than 1 year has passed since last update.

@mr_t_free

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へのリンクはコチラ

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
3
Help us understand the problem. What are the problem?