これがRTFMタイプの質問である場合はおologiesび申し上げますが、私はまだRails/Ruby/bundlerの初心者であり、少し混乱しています。
私たちの中で config/application.rb
fileこのバンドラーセグメントがあります:
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
)、それでも開発/テストグループからgemをインストールします...
なぜこれが起こるのか、どうすればこれを適切に機能させることができますか?
を見てみましょう --without
オプション:
bundle install --without development test
デフォルトでは、Bundlerはすべてのgemをインストールし、アプリケーションは必要なgemを使用します。 Bundler自体は、Railsおよび現在の環境について何も知りません。
別の解決策は bundle-only
Ruby gem 。次のように使用できます。
> gem install bundle-only
> bundle-only production
このライブラリは、バンドラーの構成を汚染したり、Gemfile.lock
;これは、ビルトインbundle --without every other group
オプション bundler
が提供します。