Разница между «установка пакета —развертывание» и «установка пакета —путь поставщика / bundle»?

#ruby-on-rails #ruby #bundler

#ruby-on-rails #ruby #bundler

Вопрос:

В чем именно разница между bundle install --deployment и bundle install --path vendor/bundle ?

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

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

Ответ №1:

В принципе, 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 установит gems в общую папку, используемую каждым проектом. Предпочтительнее изолировать ваши зависимости между проектами и развертываниями.

Комментарии:

1. Большое вам спасибо!