1. ホーム
  2. ruby-on-rails-3

[解決済み] Railsのバンドルインストールは本番のみ

2023-02-25 17:27:49

質問

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 ) の場合、開発/テストグループから gems をインストールすることになります...。

なぜこのようなことが起こるのでしょうか、また、どのようにすれば正しく動作するようになるのでしょうか?

どのように解決するのですか?

を見てみましょう。 --without のオプションを見てください。

bundle install --without development test

デフォルトでは、Bundlerはすべてのgemsをインストールし、アプリケーションは必要なgemsを使用します。Bundler自身はRailsと現在の環境について何も知りません。