#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. Большое вам спасибо!