PATH는 gemspec에서 직접 1 세대 종속성을 나열하는 반면 GEM은 2 세대 종속성 (즉, 종속성이 의존하는 항목)과 Gemfile의 종속성을 나열하는 것처럼 보입니다. PATH :: remote는 .
PATH :: spec에 속하는 것을 찾기 위해 현재 디렉토리의 로컬 gemspec에 의존하기 때문에 GEM :: remote는 rubygems.org
이므로 GEM :에 속하는 것을 찾기 위해 가야했기 때문입니다. : 투기.
Rails 플러그인에는 PATH 섹션이 표시되지만 Rails 앱에는 표시되지 않습니다. 앱에 gemspec 파일이 없으므로 PATH에 넣을 항목이 없습니다.
gembundler.com 은 DEPENDENCIES와 관련 하여 다음 과 같이 말합니다.
Runtime dependencies in your gemspec are treated like base dependencies,
and development dependencies are added by default to the group, :development
에 의해 생성 된 Gemfile rails plugin new my_plugin
은 비슷한 것을 말합니다 :
# Bundler will treat runtime dependencies like base dependencies, and
# development dependencies will be added by default to the :development group.
이것이 의미하는 것은
s.add_development_dependency "july" # (1)
과
s.add_dependency "july" # (2)
(1)은 개발 환경에서 Gemfile.lock (및 응용 프로그램)에 "july"만 포함한다는 것입니다. 따라서을 실행 bundle install
하면 PATH뿐만 아니라 DEPENDENCIES에서도 "july"가 표시되고 개발 단계에서만 표시됩니다. 프로덕션에서는 전혀 존재하지 않습니다. 그러나 (2)를 사용하면 DEPENDENCIES가 아닌 PATH에만 "july"가 표시되지만bundle install
프로덕션 환경 (예 : 종속성으로 포함하는 다른 gem)에서는 그렇지 않습니다. 개발 만.
이것들은 저의 관찰 결과이며 이것이 왜 그런지 설명 할 수는 없지만 추가 의견을 환영합니다.