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 で動きます。
ローカルで使っているビルド・実行プロセスがそのまま使えるのはとても便利ですね。