rails bundle仅安装生产

时间:2012-06-06 10:42:39

标签: ruby-on-rails-3 bundler

如果这是一个RTFM类型的问题,请道歉,但我还是rails / ruby​​ / bundler的新手,我有点困惑。

在我们的config/application.rb文件中有这个捆绑器段:

if defined?(Bundler)         
  # If you precompile assets before deploying to production, use this line
  Bundler.require(*Rails.groups(:assets => %w(development test)))
  # If you want your assets lazily compiled in production, use this line
  # Bundler.require(:default, :assets, Rails.env)
end

在我们的Gemfile我们使用不同的群组,例如

group :development, :test do
  gem "rspec-rails", ">= 2.7.0", :group => [:development, :test]
  gem 'shoulda-matchers'
  gem 'watchr'
  gem 'spork', '~> 1.0rc'
  gem 'spectator'                          
  gem 'debugger'
  gem 'wirble'
end

但是当我运行RAILS_ENV=production bundle install(或bundle install --deployment)时,它仍会从开发/测试组中安装宝石......

为什么会发生这种情况或如何使其正常工作?

2 个答案:

答案 0 :(得分:161)

查看--without选项:

bundle install --without development test

默认情况下,Bundler会安装所有宝石,您的应用程序会使用它所需的宝石。 Bundler本身对Rails和当前环境一无所知。

答案 1 :(得分:1)

另一种解决方案是使用bundle-only ruby gem。它可以使用如下:

bquote

此库不会污染您的Bundler配置或增加> gem install bundle-only > bundle-only production ;它是bundler提供的内置Gemfile.lock选项的简单替代方法。