Рельсы комплект только для установки
Извините, если это вопрос типа 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
), он все еще устанавливает драгоценные камни из группы разработки/тестирования...
Почему это происходит или как я могу сделать эту работу должным образом?
Ответы
Ответ 1
Взгляните на --without
вариант:
bundle install --without development test
По умолчанию Bundler устанавливает все драгоценные камни, и ваше приложение использует драгоценные камни, которые ему нужны. Сам Bundler ничего не знает о Rails и текущей среде.
Ответ 2
Альтернативным решением является использование bundle-only
рубинового камня. Его можно использовать следующим образом:
> gem install bundle-only
> bundle-only production
Эта библиотека не загрязняет ваши конфигураторы пакетов или увеличивает Gemfile.lock
; это простая альтернатива встроенной опции bundle --without every other group
, которая предоставляет bundler
.