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

【Rails】foremanで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 で個別に起動しましょう。

五十川 洋平(Yohei Isokawa)

五十川 洋平(Yohei Isokawa)

フロントエンドエンジニア/面白法人カヤックなどのWeb制作会社に勤務したのち、故郷の新潟に戻り独立。JSフレームワークAngularやFirebase、Google Cloud Platformを使ったWebアプリ開発が得意。Udemyでプログラミング解説の講師や、ドローンを使った映像制作も行っています。

プロフィール