轨束只安装生产(rails bundle install production only)

2019-07-29 18:04发布

道歉,如果这是一个RTFM型的问题,但我还是新的铁轨/红宝石/捆扎机和我有点困惑。

在我们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 ),它仍然在开发/测试组安装宝石...

为什么出现这种情况还是我怎样才能使这项工作正常?

Answer 1:

看看--without选项:

bundle install --without development test

默认情况下,捆扎机安装所有的宝石和应用程序使用它需要的宝石。 捆绑本身一无所知Rails和当前的环境。



Answer 2:

另一种解决方案是使用bundle-only红宝石宝石 。 它可以用来如下:

> gem install bundle-only
> bundle-only production

这个库不污染您的捆绑CONFIGS或增加Gemfile.lock ; 它是一个简单的替代内置的bundle --without every other group该选项bundler提供。



文章来源: rails bundle install production only