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.start
に gulp serve
とか書いておけば、 Heroku で動きます。
ローカルで使っているビルド・実行プロセスがそのまま使えるのはとても便利ですね。