- PVSM.RU - https://www.pvsm.ru -

3 совета для правильного управления зависимостями

Обновление зависимостей может стать нетривиальной задачей, особенно на проектах, которые существуют долгое время. В этой статье будут приведены советы как остаться up-to-date и сделать обновление как можно более безболезненным.

image

1. Обновляйтесь регулярно

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

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

2. Правильно определяйте версии

При включении новой зависимости подумайте о том, какая версия вам нужна.

Если предположить, что пакет использует семантическое версионирование (semver [1]), скорее всего лучшим решением будет использовать минорную версию. Т.е. например для Laravel это будет 5.3.*.

Использование мажорной версии (например, 5.*) скорее всего будет слишком неопределенно, т.к. Laravel делает значительные изменения между минорными версиями. Использование патч-версии (например, 5.3.19) чрезмерно точное и усложняет управление зависимостями без необходимости.

3. Используйте менеджер зависимостей с lock-файлом

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