😊
[Ruby] gemファイルにある、`require: false`って何??
require: false
って何??
gemファイルにある、-
これは自動読み込みされないようにするためのオプション。
require: false
を指定すると、自動読み込みしないようになる。
( =:require => false
と指定するとBundler.require
を実行しても、
ロードされない,ということ。) -
アプリ起動時には読み込む必要がないものに
require: false
を指定することで,
起動時のメモリ消費を抑え、アプリケーションの起動速度を向上させることができる。
ex. 例えば、RSpec. これはアプリ起動時には必要ないですね。
group :test do
gem 'rspec', require: false
end
gem が require される仕組み
config/apprlication.rb
このファイル内で以下の記述があります。
Bundler.require(*Rails.groups)
この処理によってGemfile
に記載されているgem
が依存関係を含めて、
ロードすることができるようになっている。
=>Bundler
が呼び出されていて、そこでGemfile
内のGem及び依存関係を列挙してくれてる
- bundlerとは
gemの依存関係とバージョンを管理するためのツール。
▷ bundle install
作成されたGemfileをもとにgemをインストールするコマンドがbundle install。
railsと依存関係のあるgemが全てインストールされる。
- gemfile.lock
Gemfileにgemを列挙、「bundler install」でgemをインストールすると、
「gemfile.lock」というファイルが生成される。
インストールしたgemのバージョンを記載して保存しておくもの。
⇒ 一度「gemfile.lock」ができると、使用するgemのバージョンが変わったりしません。
= gemのバージョンを固定して開発中に問題がおきないようにしている!
開発時と本番環境運用時で、gemのバージョンの違いにより、
rubyプログラムが動かなくなることがないよう、gemのバージョンを固定(lock)してくれるためのもの。
ということで、書かれている(書かなければいけない時について)理由は把握できましたが、
そもそもの "Ruby"について、Rubyの仕組みについてを学ぶ必要がありそうです....
最近アルゴリズムの勉強もはじめ、Rubyで解いていますが、
この期間Ruby on Railsをメインに学習してきたので、Rubyについての知識の浅さを体感しています。
頑張りましょ!
Discussion
初めまして!
記事について大変に参考になりました!(フォローさせて頂きました)
また、GitHubのプロフィールがとてもリッチで参考にしたいと思いました!
よろしければ、GitHubのプロフィールを作成する際に、参考にしたサイトなどがございましたら教えていただけると嬉しいです!
よろしくお願いします🙇♂️
Takeさん!コメントもフォローもありがとうございます!♡
GitHubのプロフィールは,私はこのgenerator使って作りました!
ご返信ありがとうございます!(Zennのフォローも感謝です!)
こちらとても使いやすいですね!
(早速 Readme を作成してみました)
ささやかなお礼ですが、バッジをお送りしました。
今後ともよろしくお願いします🙇♂️
すごい行動の速さ...!👀
バッチ...!うれしいですありがとうございます!!
こちらこそ今後ともよろしくお願いします(^^)/