RailsでWebpackerを利用する場合、`rails s` でローカルサーバーを立ち上げつつ
`bin/webpack-dev-server` でWebpackのビルドを走らせ、ファイルに変更があればブラウザのホットリロードで画面を見ながら開発を行うというのが一般的だと思います。
しかし `rails s` と `bin/webpack-dev-server` を毎回ターミナルで叩くのが面倒なので、一つのコマンドでどちらも起動できるようにしましょう。
foremanでコマンド実行をまとめる
foremanというgemを利用することで、外部に用意した `Procfile` という設定ファイルの中に記述したコマンドをまとめて実行できます。
開発時だけ利用するので、Gemfileの `:development` に記述します。
“`rb
group :development do
gem ‘foreman’
…
end
“`
foremanはインストールしておきましょう。
“`sh
$ bundle install
“`
次に `Procfile` をRailsのプロジェクトルート直下に新規作成します。
“`sh
rails: rails s –port=3000
webpack: bin/webpack-dev-server
“`
そして次のコマンドで起動します。
“`sh
$ foreman start
“`
foremanのデメリット
foremanを利用すると、ターミナルに出力されるログが1つのウィンドウに集約されます。
Railsサーバー、Webpackのコンパイルログをそれぞれ別々に確認したい場合は、foremanの利用を諦めて `rails s` と `bin/webpack-dev-server` で個別に起動しましょう。