Подтвердить что ты не робот

Rails 3 "bundle install" и "bundle install --deployment" работают хорошо, за исключением того, что второй использует больше дискового пространства?

Похоже, что на машинах разработки (например, на Macbook), если мы используем bundle install --deployment, все драгоценные камни будут установлены в папку vendor/bundle, и просто используйте больше дискового пространства, если у нас есть несколько проектов Rails 3 ( некоторый проект только для тестирования Rails 3). Если это не --deployment, то драгоценные камни будут находиться в "общей" папке, а не внутри папки проекта, и поэтому могут совместно использоваться для разных проектов. Это правда?

Другое дело, нам нужно добавить все файлы в vendor/bundle в наш репозиторий и нажать его? Похоже, что если мы это сделаем, мы просто запустим репо, потому что, если мы этого не сделаем, все подходящие камни будут установлены bundle install с использованием всех драгоценных камней, указанных в Gemfile.lock. (Gemfile.lock - небольшой файл в репо). Это тоже правда?

4b9b3361

Ответ 1

Да! Правда.

Когда вы используете флаг --deployment, Bundler гарантирует, что каждый драгоценный камень, который вам нужен, является продавцом, т.е. они скопированы в заранее определенное место в структуре вашей папки приложения (которая, как правило, является vendor/bundle в Rails по соглашению). Это хорошо для двух вещей.

Сначала, если у вас есть ограниченные разрешения, которые препятствуют установке камней на вашем компьютере развертывания, тогда позвольте вам иметь все необходимые камни в вашем приложении.

Во-вторых, если вы хотите взломать фактический код в драгоценных камнях, вы можете сделать это на своих копиях, не затрагивая системные драгоценные камни. Изменения, которые вы вносите, повлияют только на приложение, над которым вы работаете.

Этот подход к использованию, используемый для другого использования, гарантирует, что вы используете конкретную версию драгоценного камня, и ваше приложение будет работать, даже если системные драгоценные камни были обновлены до более высокой версии, которая нарушит ваше приложение. Однако сам Бундлер сделал этот случай использования в основном устаревшим, поскольку он автоматизировал установку и привязку конкретных версий драгоценных камней.

И да, продавец будет раздувать ваш код приложения. Gemfile.lock - это всего лишь список необходимых драгоценных камней. Если вы продадите свои драгоценные камни, они будут полностью скопированы в ваше приложение.

Итак, я рекомендую вам не поставщик ваших драгоценных камней (это также означает, что вы не используете флаг --deployment), если у вас нет одной из причин, указанных выше.

Ответ 2

Я думаю, что поставщик/пакет, не повлияет на репо, если репо позволяет игнорировать файлы.
Его можно игнорировать (добавив путь к .gitignore, если вы используете git), а на сервере есть символическая ссылка для совместного использования драгоценных камней с несколькими версиями.