Mam kod kodowy, który ma plik Gemspec, taki jak:

require "rubygems"
::Gem::Specification.new do |specification|
  specification.add_development_dependency "yard", "~> 0.9"
  specification.add_runtime_dependency "dry-validation", "~> 0.13"
end

bundle install zainstaluje zarówno typy zależności. Chcę więc zainstalować zależności wykonawcze dla moich skryptów CI. Widzę bundle install --with <group> istnieje, ale nie mam grup. Uruchom interaktywnie, zwrócona specyfikacja ma pusty wynik zwrócony z .groups. Chciałbym racjonalizować te dwa światy. Czy muszę wyraźnie dodać grupę dla każdej zależności GEM? Czy Add_Runtime_dependency i Add_development_dependency nawet robi różnicę?

0
Kevin Buchs 22 październik 2020, 19:26

1 odpowiedź

Najlepsza odpowiedź

Z Dokumentacja Bundlera

Ponieważ mamy wywołanie metody gemspec w naszym Gemfile , Bundler automatycznie dodać ten klejnot do grupy o nazwie "Rozwoju", który wówczas możemy odwołać się w dowolnym momencie, które chcemy załadować te klejnoty następująca linia:

Bundler.require(:default, :development)

W twoim przypadku, jeśli chcesz zainstalować wszystkie rubygemy, które nie są dla rozwoju, spróbuj

bundle install --without development

W celu przyszłej wersji Bundlerskiej możesz skonfigurować go lokalnie (lub globalnie)

bundle config set --local without 'development'

Aby to zrobić wszystko, sprawdź, czy masz Gemfile w swoim projekcie, który będzie wyglądał

# frozen_string_literal: true

source 'https://rubygems.org'

gemspec
1
Mr. 27 październik 2020, 06:43