只在开发环境或测试环境下使用的 gem 应进行适当的分组。
在项目中只使用广为人知的 gem。如果你考虑引入某些鲜为人所知的 gem,应该先仔细检查一下其源代码。
关于多个开发者使用不同操作系统的项目,与操作系统有关的 gem 默认情况下会产生经常变动的
Gemfile.lock
。 在 Gemfile 文件里,所有与 OS X 相关的 gem 放在darwin
群组,而所有与 Linux 有关的 gem 应放在linux
群组:# Gemfile
group :darwin do
gem 'rb-fsevent'
gem 'growl'
end
group :linux do
gem 'rb-inotify'
end
要在正确的环境下加载合适的 gem,需添加以下代码至
config/application.rb
:platform = RUBY_PLATFORM.match(/(linux|darwin)/)[0].to_sym
Bundler.require(platform)
不要把
Gemfile.lock
文件从版本控制里移除。这可不是一个随机产生的文件——它的目的是确保你所有的团队成员执行bundle install
时,获得相同版本的 gem 。