Gemfileの書き方について

3486 ワード

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とは・・
本番環境。実際に動く場所。

参考記事: