문제

Rails 앱에 앱에 사용하는 보석이 있다고 가정 해 봅시다 (우리는 전화 할 것입니다.”주요 보석") 그리고 당신은 이식성을 위해 그들을 공급했습니다.

그 말을하자 "주요 보석"또한 자신의 보석이 필요합니다 - 우리는 이것을 부를 것입니다."이차 보석".

환경을 설정할 때는 다음과 같이 말해야합니다.

config.gem 'primary-gem'

직접 사용하는 보석의 경우.

그러나, 당신도 말해야합니까? . .

config.gem 'secondary-gem'

앱에서 그 보석을 명시 적으로 사용하지 않더라도?

아니면 보석을 당신의 vendor/gems 앱에서 선택할 수있는 디렉토리?

도움이 되었습니까?

해결책

배포에서 Rails는 의존성에 대해 알고 있으므로 보석을 얼리려면 실행할 수 있습니다.

rake gems:unpack:dependencies

공급 업체 디렉토리로 연결됩니다.

그러나 런타임에는 종속성을로드하는 것이 보석 작업이므로 보석이이를 수행하므로 config.gem '기본'이 작동해야합니다.

다른 팁

아니, 당신은 또는 적어도 당신은 안됩니다. 각 GEM 사양에는 자체 종속성 목록이 포함되어야합니다. 기본 보석이 설치되면 RubyGems는 자동으로 캐스케이드에 각 GEM 의존성을 설치합니다.

다시 말해, A가 C+D가 필요한 B를 요구하는 경우

config.gem 'A'

명령이있을 때

gem install A

실행되면 RubyGems는 모든 종속성을 해결하고 설치합니다. Rails 프로젝트에서 실행되는 모든 종속성을 볼 수 있습니다.

rake gems

때로는 GEM 저자가 사양에 보석 의존성을 포함시키는 것을 잊을 수 있습니다. 이 경우 애플리케이션을 설치하도록 강제로 환경에 지정해야합니다. 물론, 문제를 해결할 수 있도록 보석 관리자에게 연락하는 것이 좋습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top