Я все еще новичок в 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
), он все равно устанавливает драгоценные камни из группы разработки / тестирования ...
Почему это происходит или как я могу заставить это работать правильно?
источник
--without
, но это кажется очень не элегантным, особенно учитывая те директивы конфигурации вconfig/application.rb
(которые, как предполагается, обращаются именно к этому), а также с учетом этой цитаты: Rails 3 поставляется с встроенной поддержкой с Bundler.config/application.rb
и alsoconfig/boot.rb
), но Bundler ничего не знает о rails ... Он только читает Gemfile и не использует ни один из этих файлов rails. Думаю, монета наконец упала. Спасибо за вашу помощь!--without
должны быть разделены:
s, а не пробелами. Я считаю, что так и должно бытьbundle install --without development:test
.Альтернативное решение - использовать
bundle-only
драгоценный камень рубин . Его можно использовать следующим образом:Эта библиотека не загрязняет конфигурации и дополнения вашего сборщика
Gemfile.lock
; это простая альтернатива встроеннойbundle --without every other group
опцииbundler
.источник