Nice programing

레일스 번들 설치 프로덕션 전용

nicepro 2020. 10. 9. 12:21
반응형

레일스 번들 설치 프로덕션 전용


이것이 RTFM 유형의 질문이라면 사과하지만 여전히 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)하면 여전히 개발 / 테스트 그룹의 gem을 설치합니다 ...

왜 이런 일이 발생하거나 제대로 작동하도록하려면 어떻게해야합니까?


--without옵션을 살펴보십시오 .

bundle install --without development test

기본적으로 Bundler는 모든 gem을 설치하고 애플리케이션은 필요한 gem을 사용합니다. Bundler 자체는 Rails와 현재 환경에 대해 아무것도 모릅니다.


대안은 bundle-onlyruby gem 을 사용하는 것 입니다. 다음과 같이 사용할 수 있습니다.

> gem install bundle-only
> bundle-only production

이 라이브러리는 번 들러 구성이나 기능 보강을 오염시키지 않습니다 Gemfile.lock. 제공 하는 내장 bundle --without every other group옵션에 bundler대한 간단한 대안 입니다.

참고 URL : https://stackoverflow.com/questions/10912614/rails-bundle-install-production-only

반응형