Разница между "комплектом установки - развертывание" и "комплектом установки --path vendor / bundle"? - PullRequest
0 голосов
/ 24 марта 2019

Какая разница между bundle install --deployment и bundle install --path vendor/bundle?

Я прочитал ссылку ниже, которая объясняет, что делает режим развертывания, но я все еще не уверен, потому что обе эти команды устанавливают гемы в путь vendor/bundle. Мое смутное понимание состоит в том, что --deployment устанавливает Gemfile.lock на место, так что он больше не может быть обновлен. Но, пожалуйста, поправьте меня, если я ошибаюсь.

https://bundler.io/man/bundle-install.1.html#DEPLOYMENT-MODE

1 Ответ

1 голос
/ 24 марта 2019

По сути, bundle install --deployment даже не смотрит на ваш Gemfile и просто установит все зависимости от вашего Gemfile.lock (и потерпит неудачу, если у вашего Gemfile.lock есть проблемы с зависимостями). bundle install --path делает обычное bundle install с определенной целевой папкой (которая в вашем примере совпадает с целевой папкой для bundle install --deployment). Основное отличие вашего примера в том, что bundle install попытается изменить ваш Gemfile.lock, если ваш Gemfile изменился.

Причина, по которой Bundler устанавливается на vendor/bundle в режиме развертывания, заключается в том, что обычный bundle install будет устанавливать гемы в общую папку, используемую каждым проектом. Желательно изолировать ваши зависимости между проектами и развертываниями.

...