Heroku上でもgulp-webserverを使う


Heroku で Node.js を動かすときのポイントはこちら。

  • Procfile か npm start でアプリが起動するように
  • 0.0.0.0:$PORT ないし hogehoge.heroku.com:$PORT を listen する

gulp-webserver の場合、デフォルトが localhost:8000 なので変更が必要です。

gulp.task('serve', function() {
    gulp.src('public')
        .pipe(webserver({
            host: process.env.HOST || 'localhost', // $HOST は独自定義
            port: process.env.PORT || 8000
        }));
});

ホスト名は環境変数で取得できないようなので、手動で heroku config:set HOST=0.0.0.0 とかしてください。ローカルで実行する際も同じでよければ、env使わずに埋め込んでもいいと思いますが。

で、 package.json の scripts.startgulp serve とか書いておけば、 Heroku で動きます。

ローカルで使っているビルド・実行プロセスがそのまま使えるのはとても便利ですね。

参考