宝石をリストする順序は重要ですか? これら 2 つのブロックは同等ですか?
gem 'carrierwave'
gem 'rmagick'
と
gem 'rmagick'
gem 'carrierwave'
宝石をリストする順序は重要ですか? これら 2 つのブロックは同等ですか?
gem 'carrierwave'
gem 'rmagick'
と
gem 'rmagick'
gem 'carrierwave'
使用する場合Bundle.require
(Rails ではそうです)、Gemfile に表示される順序で Gem が必要です。ずっとこうだったわけではありませんが、しばらくはそうでした。
Carrierwave は必要なときに RMagick を明示的に要求するので、あなたの場合は問題にならないと思います。しかし、厳密に言えば、2 つのブロックは同等ではありません。
Bundler は、リストされている順序で gem の依存関係をロードしません* が、次の基準を使用してソースの優先順位に従ってロードします。
明示的なパスまたは git オプションが gem の依存関係に追加されます。例:
gem 'some-gem', github: 'somebody/some-gem'
他の gem 依存関係からgem 'actionmailer'
暗黙的に必要とされる gemの明示的に定義された依存関係。gem 'rails'
複数のソースが追加されている場合は、最後から最初に検索されます。
https://bundler.io/man/gemfile.5.html#SOURCE-PRIORITYを参照
編集: Mattの回答によると、何をしようとしているのか(またはロードしている宝石)によっては、順序が重要になる場合があります。bundler を使用しても、gem の注文が重要になる可能性がある を参照してください。