Gemfileの中身を理解しよう【Webアプリ開発#5】

今回は、RailsをはじめとするRubyプロジェクトで必ず目にする「Gemfile」の仕組みと読み方について解説します。 パッケージマネージャが「どこから」「何を」「どこに」持ってくるのかという基本から、バージョン指定の独特なルール、Gemfile.lock の重要性、環境ごとのグループ分けまで、実務で必須となる知識を凝縮しました。 Node.js(npm)との比較もあるので、Railsに限らず他言語の経験がある方にも分かりやすい内容になることを心がけました。 この動画はシリーズものです。 まとめて体系的に学びたい方は、ぜひ下記の再生リストからまとめてご覧ください。 【実務レベル】Ruby on Railsで学ぶWebアプリ開発講座 再生リスト    • 環境構築で詰まる理由を根本から解決する【Webアプリ開発#2】   【タイムスタンプ】 00:21 source(1行目の記述)の意味 03:39 バージョンの指定方法 07:35 lockファイル(Gemfile.lock)の意味、重要性 14:07 group で囲まれた宣言(環境の切り替え) この動画はシリーズものです。 まとめて体系的に学びたい方は、ぜひ下記の再生リストからまとめてご覧ください。 【実務レベル】Ruby on Railsで学ぶWebアプリ開発講座 再生リスト    • 環境構築で詰まる理由を根本から解決する【Webアプリ開発#2】   今回のまとめノート 1. パッケージマネージャの基本思想 どこから? source "https://rubygems.org"(Rubyは偽装対策などの歴史的経緯から明示する文化。Node.jsは暗黙的にレジストリが決まっている) 何を? Gemfile内で宣言したライブラリとバージョン どこに? デフォルトの保存先(設定で変更可能。Node.jsでいう ./node_modules のようなローカル管理も可能) 2. バージョン指定の境界線 パッケージマネージャによって方針が違ったりしますが、「~以上、〜未満」の組み合わせがよく使われます。 Node.jsとの違い:npmの ^19.0.0 は「20.0.0 未満」を指すため、セマンティックバージョニングの解釈や記号の意味が少し異なります。 3. Lockファイルの鉄則 Gemfile.lock(または package-lock.json)は、依存関係を解決した「正解のバージョン」の記録。 安易に削除・変更すると環境が壊れる原因になります。 アップデートした際は、必ずLockファイルも一緒にGitにコミット(push)してください。 4. グループ(group)と環境の分離 development(開発)、test(テスト)、production(本番)など、環境ごとに必要なライブラリを分離します。 本番環境で開発・テスト用のGemをインストールしたくない場合は、以下のコマンドで除外設定が可能です。 $ bundle config set --global without 'development test' $ bundle install #プログラミング初心者 #web開発 #rubyonrails