Bundler Bundler zarządza zależnościami aplikacji w całym cyklu jej życia w projektach języka Ruby.
Typowe polecenia CLI
bundle install # Instalacja wszystkich wymaganych gemów
bundle install -j4 # Równoległa instalacja przy użyciu 4 wątków
bundle update # Aktualizacja wszystkich gemów do najnowszych pasujących wersji
bundle update rails # Aktualizacja tylko wybranego gema
bundle outdated # Wykrywanie nieaktualnych gemów
bundle exec <command> # Uruchamianie polecenia w kontekście bundla
bundle show <gemname> # Wyświetlanie katalogu instalacji gema
bundle info <gemname> # Wyświetlanie metadanych gema
bundle gem <my_gem> # Generowanie szkieletu nowego gema
Składnia pliku Gemfile
Podstawowe deklaracje
source 'https://rubygems.org'
gem 'rails', '~> 7.1.0'
gem 'pg', '>= 1.5'
gem 'puma'
Odwołania Git i GitHub
# Bezpośrednie repozytorium GitHub
gem 'devise', github: 'heartcombo/devise'
# Konkretna gałąź lub tag Git
gem 'devise', github: 'heartcombo/devise', branch: 'main'
gem 'nokogiri', git: 'https://github.com/sparklemotion/nokogiri.git', tag: 'v1.16.0'
Grupy zależności
group :development, :test do
gem 'rspec-rails'
gem 'factory_bot_rails'
end
group :production do
gem 'aws-sdk-s3'
end
Wdrażanie na produkcji
W potokach CI/CD i na serwerach produkcyjnych instaluj z flagą deployment, aby zapobiec modyfikacji Gemfile.lock:
# Nowoczesne wdrażanie Bundlera
bundle config set --local deployment 'true'
bundle config set --local without 'development test'
bundle install
Lokalne nadpisywanie gemów
Wskazanie lokalnego katalogu gema na potrzeby aktywnego rozwoju:
bundle config local.my_gem ~/Developer/Projects/my_gem