2012-07-30 4 views
3

내 Gemfile이 두 번로드되는 것 같습니다.Gemfile이 두 번로드되고 있습니다. 왜? 어떻게 멈출 수 있습니까?

source 'http://rubygems.org' 


gem 'haml'     # asset engine 
gem 'jquery-rails' 
gem 'rails',     '= 3.1.1' 
gem 'readable_exceptions' 
gem 'sass-rails',    "= 3.1.4" # asset engine 
gem 'uglifier'    # asset engine 
gem 'bundler',    ">= 1.0.18" # 1.0.18 is required for proper asset pipeline support 
gem "rake", "=0.8.7" 
gem "resque" 
gem 'date_validator' 
gem "typhoeus" 
gem 'newrelic_rpm' 
gem "scout_rails" 
puts "Loading Gemfile" 

출력 : 모든 것을 두 번로드되고 내 개발 환경에서

Loading Gemfile 
Loading Gemfile 
Using rake (0.8.7) 
Using multi_json (1.3.6) 
Using activesupport (3.1.1) 

내가 믿는이의 원인이되는 문제 나 실행 ... 내가 볼

Gemfile을 설치 번들합니다.

development.log 파일 :

/app/models/facebook_application.rb:47: warning: already initialized constant APP_PROPERTIES 
/app/models/facebook_application.rb:59: warning: already initialized constant ADJUSTABLE_MIGRATIONS 
/app/models/facebook_application.rb:210: warning: already initialized constant MAX_TRIES 

가 시스템 문제의 어떤 종류의 모든 것을 두 번로드 할 원인이 될 수 나는 승객 독립 내 서버를 실행하면, 나는 그런 이상한 로그가?

나는 :

  • 은 내가 사용 gemset
  • 를 사용하지 않는 파일
  • 을 .rvmrc 삭제 한 번 들러
  • 를 사용하는 모든 시스템 루비 보석
  • 을 삭제 한 RVM
  • 를 사용하여 루비 -1.9.2-p320
  • 레일 사용 3.1.1

답변

2

은 어쩌면 내가 모르는 뭔가가있어,하지만이 것 같습니다 라인 보석 후 '스카우트 레일' 풋 '로드 Gemfile'가

그래서 어쩌면 당신이로드하는 것이 아니다라고 Gemfile을 두 번 (실제로는 문제가되지 않을 것입니다. 왜냐하면 우리는 하루 종일 무언가를 깨뜨리지 않고 꾸러미를 묶을 수 있기 때문입니다.) 그러나 여러분이 말한 줄을 썼기 때문에 여러분의 것처럼 보입니다.

+0

gemfile에서'puts'를 사용하면 터미널에서 문자열을 출력합니다 ... Gemfile의 재로드를 요구하지 않습니다. 이것은 무한 루프입니다 ... –

0

이것은 Bundler가 자신의 업무를 수행하는 방법입니다. 기존 종속성을 만족시키기 위해 몇 가지 검사를 수행합니다. Bundler는 종속성의 트리를 얻기 위해 Gemfile을 자체 DSL로 실행합니다.

Ruby 레벨에서 이중 요구가 금지됩니다. 첫 번째 require은 파일을로드하고 다음 호출은이 파일이 이미 파티에 있으며 다시로드 할 필요가 없음을 나타내는 false을 반환합니다. 따라서 Bundler가 귀하의 실수를 유발할 수 있을지는 의문입니다.

그런데 rails 명령에 bundle exec을 사용할 필요가 없습니다. Rails 핵심 팀 구성원이 here 이유를 설명합니다.

그런데 # 2 : install이 기본값 인 bundle의 동작입니다.

관련 문제