gulp 覚え書き

gulp.js

自分用の gulp.js 覚書のメモ。以下の内容は

http://d.hatena.ne.jp/anatoo/20140420/1397995711

を大変参考にさせていただきました。

グローバルで利用できるようにインストール

npm install -g gulp

npm init で package.json を作成しておく

npm init

プロジェクトのルートで、 gulp をインストール

npm install --save-dev gulp

gulpfile.js を作成する

プロジェクトのルートに gulpfile.js を作成する。

var gulp;

gulp = require('gulp');

gulp.task('default', function() {
  console.log('done!');
});

./src/ 以下の CoffeeScriptコンパイルして、 ./build/js/ 以下に出力するといった場合は以下のようになる。

gulp.task('coffee', function() {
  return gulp.src('./src/*.coffee')
    .pipe(coffee({bare: true})
    .pipe(gulp.dest('./build/js/'))
});

gulp.src で処理を行うフォルダを指定して、pipe でタスクを直列につないでいって、 gulp.dest で出力先を指定する。 gulp.js で利用できる API については 以下を参照。

gulp API docs

実行

プロジェクトのルートで gulp タスク名 を実行することで、gulp.task の第一引数で指定した同じ名前のタスクが走る。

gulp default

aaa

タスク名を省略した場合は default が実行されるようになっている

gulp
gulp.task(name[, deps], fn)
// gulp.task(タスク名,[並列で実行しておきたいタスク達], タスクの内容);

先に実行される依存タスクの実行順序を保証する

ストリームを返すかコールバックを呼び出すことで、非同期化してタスクの実行順序を保証できる

ストリームを返す例

gulp.src で生成したストリームを return する

gulp.task('coffee', function() {
  return gulp.src('./src/*.coffee')
    .pipe(coffee({bare: true})
    .pipe(gulp.dest('./build/'))
});

コールバックを呼び出す例

gulp.task('one', function(done) {
  return setTimeout(function(done) {
    console.log('task');
    done();
  }, 1000);
});

プラグイン

プラグインは以下から検索できるので、用途に応じて require して、使う。

http://gulpjs.com/plugins/