gulpで独自のpipe処理をする

タカフです。

今日も小ネタです。

gulpって色々な事が出来て大変便利なのですが、その便利な中でも独自の処理を入れたいことがあります。

例えばgulp生成された文字列に対してさらに少し変更を加えたい時等。

しかしタスクランナーとしてgulpで記述されているならばgulpのお作法に従って記述してやる必要があります

そんな時は以下のようにpipeコードでつなげてthrough2というのを使って取得バッファに対して変更処理を入れます。

gulpfile.js
// 冒頭でthrough2のrequireしてください
const through2 = require('through2');


.pipe(through2.obj((file, enc, callback) => {
  if (file.isBuffer()) {

    // ファイルの内容をcontentsに文字列として読み込み
    let contents = String(file.contents);
    // ここで取得した文字列に対して独自の処理を記述する
    contents += "\n by takafumi.";  // 最後に文字列を付与するとか

    // new Buffer()をしないとエラーになります
    file.contents = new Buffer(contents);
  }
  // through2の第三引数のcallbackに返却してやります
  callback(null, file);
}))

gulpで生成された文字列に変更をかけたいならこのコードで煮るなり焼くなり自由です!
現場からは以上です。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です