Gemfileの書き方について
gemをインストールする際に、書く場所に不安があったので調べて記事にしました。
groupとか分けられているっぽいけど、どこに書けばいいの・・?
結論
どこにでも書いていいわけでもなく、
開発、テスト、本番環境でインストールさせたいgemはgroup分けされているdo.. end内のそれぞれの場所に、全ての環境でgemをインストールさせたければそれ以外の場所に書く。
なぜこのようなグループ分けがされていたり、書く場所が分かれていたりするのか
→環境によってインストールしたいgemがある場合があったり、gemを環境毎でグループ分けすることで管理しやすくする為。アプリケーション開発では環境を3つは分けるべき。
環境は下記にまとめてます。
それぞれの書く場所について
group :development, :test do #開発とテスト環境
end
group :development do #開発環境
end
group :test do #テスト環境
end
group :production do #本番環境(添付画像にはありませんが)
end
上記以外の do .. end の場所以外に書かれたgemは:defaltグループに属します。
gemを記載した後、
$ bundle install --without [環境]
上記コマンドで指定した環境以外のgemをインストールします。
本番環境で、テストと開発環境のグループを除いたgemをインストールしたい場合は
$ bundle install --without development test
上記のコマンドを実行します。
グループ分けとは?環境とは
アプリケーション開発する際3つは環境を用意し、開発、検証、運用させます。
それが上記で出てきた、開発環境、テスト環境、本番環境です。
開発環境で作業しアプリケーションを作成し、
テスト環境は疑似本番環境で、本番のようにアプリケーションを動かします。(即本番の場に出すと問題があった際、利用者様に迷惑がかかるため)
その後、本番環境に移して実際にアプリケーションを使います。
アプリを開発するときの場所、問題ないか確認する場所、本番の場所というイメージ。
developmentとは・・
開発環境。開発時の作業場所。
testとは・・
テスト環境。作った物を動かす場所を再現した、テスト場所。
productionとは・・
本番環境。実際に動く場所。
参考記事:
開発環境
テスト環境
本番環境
RubySTUDIO
Pikawaka 【Rails】 envメソッドで環境を確認する方法と各コマンドの指定方法
ステージング環境とは?開発環境、検証環境との違いと役割
Discussion