【Rails】foremanでrails serverとwebpack-dev-serverを一度に起動する

rails serverとwebpack-dev-serverを一度に起動する

RailsでWebpackerを利用する場合、rails s でローカルサーバーを立ち上げつつ
bin/webpack-dev-server でWebpackのビルドを走らせ、ファイルに変更があればブラウザのホットリロードで画面を見ながら開発を行うというのが一般的だと思います。

しかし rails sbin/webpack-dev-server を毎回ターミナルで叩くのが面倒なので、一つのコマンドでどちらも起動できるようにしましょう。

foremanでコマンド実行をまとめる

foremanというgemを利用することで、外部に用意した Procfile という設定ファイルの中に記述したコマンドをまとめて実行できます。

開発時だけ利用するので、Gemfileの :development に記述します。

group :development do
  gem 'foreman'
  ...
end

foremanはインストールしておきましょう。

$ bundle install

次に Procfile をRailsのプロジェクトルート直下に新規作成します。

rails: rails s --port=3000
webpack: bin/webpack-dev-server

そして次のコマンドで起動します。

$ foreman start

foremanのデメリット

foremanを利用すると、ターミナルに出力されるログが1つのウィンドウに集約されます。
Railsサーバー、Webpackのコンパイルログをそれぞれ別々に確認したい場合は、foremanの利用を諦めて rails sbin/webpack-dev-server で個別に起動しましょう。

rails serverとwebpack-dev-serverを一度に起動する

更新情報はTwitterでも配信しています