[Ruby] foreman で複数プロセスを管理する
middleman v3.4 と Browserify の環境に適用。
こちらを見てこういう場合に foreman を使うのかとなるほど。
このままでは、Rails開発者もわざわざJSビルド用の別プロセスを起動しておかなければならないので foreman start で railsとwebpackのプロセスを起動するようにします。
追記:2016/12/09
以下の記事ですが、middleman v3.4 のプロジェクトに導入しています。
現行の middleman v4 には external_pipeline という仕組みがあり、Webpack や Browserify
のバンドルはこれで実現できます。
誤解を招くサンプルでしたので補足します。
Twitter でご連絡頂いた皆様、ありがとうございました。
Contents
Summary
Middleman と Browserify(watchify)を parallelshell で動かしていたが、他にも動かしているプロセスがあった。
- npm: run-script でタスクランナーから解放される | deadwood
- Babel | deadwood
foreman でキレイに管理できそうなので、parallelshell -> foreman に載せ替えるために調査。
foreman
foreman とはなんぞや。
- 複数プロセスを管理する Ruby ツール。
- Procfile というファイルに起動するアプリケーションを一覧で記述する。
以下も参考にさせて頂きました。
Installation
以下を用意して、
gem 'foreman'
bundle install
しました。
% bundle exec foreman -v
0.82.0
Usage
middleman と Browserify なので、以下のような Procfile
を用意。
$PORT
で foreman ディフォルトの 5000 番となる。
middleman: bundle exec middleman server -p $PORT
watchify: npm run watchify
foreman start
で開発を開始。
% bundle exec foreman start
21:45:59 middleman.1 | started with pid 11824
21:45:59 watchify.1 | started with pid 11825