Web制作の決まりきったものを自動化するのにとても便利なGulpですが、ときにはあるディレクトリの中のディレクトリやファイルを対象外としてタスクを処理したいといったことがあります。
- Sprite用の画像置き場として作っていた「_sprite/」ディレクトリを除外して納品用のファイルを作りたい
- Jadeでインクルード用のために作っていたディレクトリを除外してコンパイルしたい
上のような例でJadeで「_inc」ディレクトリを除外する場合には、次のようにタスクに書きます。
JavaScriptの場合
var gulp = require('gulp'); var jade = require('gulp-jade'); gulp.task('jade', function() { gulp.src(['_jade/**/*.jade', '!_jade/_inc/*.jade']) .pipe(jade({ pretty: true })) .pipe(gulp.dest('./dest/')); });
CoffeeScriptの場合
gulp = require 'gulp'; jade = require 'gulp-jade'; gulp.task 'jade', -> gulp.src ['_jade/**/*.jade','!_jade/_inc/*.jade'] .pipe jade pretty: true .pipe gulp.dest('./dest/') return
具体的にはsrcでソースファイルを指定する箇所に、除外したいディレクトリを指定する前に「!」のエクスクラメーションマークを置くだけです。
gulp-ignoreというパッケージもあるようですが、省きたいのはごく一部といったときは、こちらのほうが簡単で楽です。