Wciąż jestem nowy w rails / ruby / bundler i jestem trochę zdezorientowany.
W naszym config/application.rb
pliku znajduje się ten segment pakietu:
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
aw naszym Gemfile
używamy różnych grup, np
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
Ale kiedy uruchamiam RAILS_ENV=production bundle install
(lub bundle install --deployment
), nadal instaluje perełki z grupy deweloperskiej / testowej ...
Dlaczego tak się dzieje lub jak mogę to naprawić?
źródło
--without
, ale wydaje się to bardzo nieeleganckie, szczególnie biorąc pod uwagę te dyrektywy konfiguracyjneconfig/application.rb
(które mają dokładnie to rozwiązać), a także biorąc pod uwagę następujący cytat: Rails 3 są dostarczane z wypiekanym wsparciem dla bundlera.config/application.rb
i takżeconfig/boot.rb
), ale bundler nie wie nic o railsach ... Czyta tylko plik Gemfile i nie używa żadnego z tych plików rails. Myślę, że moneta w końcu spadła. Dzięki za pomoc!--without
powinny być oddzielone:
s, a nie spacjami. Więc uważam, że tak powinno byćbundle install --without development:test
.Alternatywnym rozwiązaniem jest użycie
bundle-only
rubinowego klejnotu . Można go używać w następujący sposób:Ta biblioteka nie zanieczyszcza konfiguracji ani rozszerzeń twojego pakietu
Gemfile.lock
; jest to prosta alternatywa dla wbudowanejbundle --without every other group
opcji, którabundler
zapewnia.źródło