Eu ainda sou novo em rails / ruby / bundler e estou um pouco confuso.
Em nosso config/application.rb
arquivo, há este segmento de bundler:
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
e no nosso Gemfile
usamos grupos diferentes, por exemplo
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
Mas quando eu executo RAILS_ENV=production bundle install
(ou bundle install --deployment
), ele ainda instala joias do grupo de desenvolvimento / teste ...
Por que isso acontece ou como posso fazer isso funcionar corretamente?
fonte
--without
, mas parece muito elegante, particularmente considerando aquelas diretivas de configuração emconfig/application.rb
(que supostamente tratam exatamente disso) e também considerando esta citação: Rails 3 vem com suporte para bundler.config/application.rb
e tambémconfig/boot.rb
), mas bundler não sabe nada sobre rails ... Ele apenas lê o Gemfile e não usa nenhum desses arquivos rails. Acho que a moeda finalmente caiu. Obrigado pela ajuda!--without
devem ser separados por:
s, não por espaços. Então eu acredito que deveria serbundle install --without development:test
.Uma solução alternativa é usar a
bundle-only
gema do rubi . Ele pode ser usado da seguinte maneira:Esta biblioteca não polui suas configurações de bundler ou aumenta
Gemfile.lock
; é uma alternativa simples para abundle --without every other group
opção integrada quebundler
fornece.fonte