gulp で Node.js を動かす。

$ gulp & node-dev app.js

gulp で watch しつつ、node も動かすために、上記のようなコマンドを叩いていました。

& でコマンドを繋げるのがスマートじゃないですし、gulp-nodemon を使って、gulp の task から node を実行する方法を試してみました。

まずは、gulp-nodemon をインストールしておきます。

$ npm install --save-dev gulp-nodemon

nodemon は node-dev や forever などと同じで、ファイルの変更等を検知して自動的に再起動してくれるツールです。

gulp-nodemon を使うことで、この nodemon を gulp から呼び出すことが出来ます。

gulpfile.js では以下の様に設定します。

var nodemon = require('gulp-nodemon');

gulp.task('nodemon', function() {
    nodemon({
        script: 'app.js',
        env: {
            TZ: 'UTC',
            NODE_ENV: 'development'
        }
    }).on('restart', ['coffee', 'stylus']);

gulp.task('default', function() {
    gulp.run('clean', 'coffee', 'stylus', 'copy', 'watch');
});

script で 実行したいファイルを選んで、env で実行する時の環境変数などを指定することが可能です。

あとは gulp を実行するだけで、default の task が実行されて、watch しながら node を起動することが出来ました。

$ gulp
gulpNode.js