Todavía soy nuevo en rails / ruby / bundler y estoy un poco confundido.
En nuestro config/application.rb
archivo hay este segmento de paquete:
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
y en nuestro Gemfile
usamos diferentes grupos, por ejemplo
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
Pero cuando ejecuto RAILS_ENV=production bundle install
(o bundle install --deployment
), todavía instala gemas del grupo de desarrollo / prueba ...
¿Por qué sucede esto o cómo puedo hacer que esto funcione correctamente?
fuente
--without
, pero parece muy elegante, particularmente considerando esas directivas de configuración enconfig/application.rb
(que se supone que tratan exactamente esto) y también considerando esta cita: Rails 3 viene con soporte horneado con bundler.config/application.rb
y tambiénconfig/boot.rb
), pero el bundler no sabe nada sobre rails ... Solo lee el Gemfile y no usa ninguno de esos archivos de rails. Creo que finalmente cayó la moneda. ¡Gracias por tu ayuda!--without
se supone que los argumentos deben estar separados con:
s, no con espacios. Entonces creo que debería serbundle install --without development:test
.Una solución alternativa es utilizar la
bundle-only
gema de rubí . Se puede utilizar de la siguiente manera:Esta biblioteca no contamina las configuraciones o el aumento de su empaque
Gemfile.lock
; es una alternativa simple a labundle --without every other group
opción incorporada quebundler
ofrece.fuente