- PVSM.RU - https://www.pvsm.ru -
Обновление зависимостей может стать нетривиальной задачей, особенно на проектах, которые существуют долгое время. В этой статье будут приведены советы как остаться up-to-date и сделать обновление как можно более безболезненным.
Самые плохие зависимости — устаревшие зависимости. Если вы поддерживаете ваш проект на постоянной основе, обновление одной зависимости не должно занимать больше нескольких минут. На обновление нескольких зависимостей в одно и то же время, особенно если они включают критические изменения (breaking changes), могут уйти часы.
Старайтесь обновляться раз в несколько дней или раз в несколько недель в зависимости от величины проекта, количества зависимостей и скорости с которой обновляются эти зависимости.
При включении новой зависимости подумайте о том, какая версия вам нужна.
Если предположить, что пакет использует семантическое версионирование (semver [1]), скорее всего лучшим решением будет использовать минорную версию. Т.е. например для Laravel это будет 5.3.*
.
Использование мажорной версии (например, 5.*
) скорее всего будет слишком неопределенно, т.к. Laravel делает значительные изменения между минорными версиями. Использование патч-версии (например, 5.3.19
) чрезмерно точное и усложняет управление зависимостями без необходимости.
Lock-файл хранит все зависимости и точные версии, которые были установлены. Если вы подключаете Laravel с версией 5.3.*
, lock-файл будет хранить точную на момент установки версию (например 5.3.1
или 5.3.19
).
Это особенно важно, когда вы работаете в команде. У каждого коллеги будут установлены точно такие же зависимости как и у вас.
Composer [2] использует lock-файл по умолчанию, тут нет проблем. Bower [3] не поддерживает lock-файл и его нужно постараться заменить на другой менеджер если у вас есть такая возможность.
В npm [4] есть возможность использовать lock-файл. После установки зависимостей запустите npm shrinkwrap [--dev]
, эта команда сгенерирует npm-shrinkwrap.json
файл, который нужно закоммитить в репозиторий. Если этот файл присутствует когда вы запускаете npm install
, будут установлены те же версии.
Yarn [5] это новый прекрасный менеджер зависимостей от Facebook, который по умолчанию создает lock-файл. Этот менеджер относительно нов и тяжело сказать о его надежности и готовности к полноценному использованию. Например, в моем случае он не работал потому что общие папки (shared folders) в VirtualBox не поддерживают символические ссылки.
Автор: limonte
Источник [6]
Сайт-источник PVSM.RU: https://www.pvsm.ru
Путь до страницы источника: https://www.pvsm.ru/programmirovanie/204437
Ссылки в тексте:
[1] semver: http://semver.org/lang/ru/
[2] Composer: https://getcomposer.org/
[3] Bower: https://bower.io/
[4] npm: https://www.npmjs.com/
[5] Yarn: https://yarnpkg.com/
[6] Источник: https://habrahabr.ru/post/313952/?utm_source=habrahabr&utm_medium=rss&utm_campaign=best
Нажмите здесь для печати.