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

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

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` で個別に起動しましょう。

五十川 洋平(Yohei Isokawa)

五十川 洋平(Yohei Isokawa)

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

プロフィール

©Copyright 2022 Yohei Isokawa All Rights Reserved.