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

в 15:40, , рубрики: bower, composer, dependencies, dependency manager, npm, YARN, Программирование, управление зависимостями

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

image

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

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

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

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

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

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

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

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

Lock-файл хранит все зависимости и точные версии, которые были установлены. Если вы подключаете Laravel с версией 5.3.*, lock-файл будет хранить точную на момент установки версию (например 5.3.1 или 5.3.19).

Это особенно важно, когда вы работаете в команде. У каждого коллеги будут установлены точно такие же зависимости как и у вас.

Composer использует lock-файл по умолчанию, тут нет проблем. Bower не поддерживает lock-файл и его нужно постараться заменить на другой менеджер если у вас есть такая возможность.

В npm есть возможность использовать lock-файл. После установки зависимостей запустите npm shrinkwrap [--dev], эта команда сгенерирует npm-shrinkwrap.json файл, который нужно закоммитить в репозиторий. Если этот файл присутствует когда вы запускаете npm install, будут установлены те же версии.

Yarn это новый прекрасный менеджер зависимостей от Facebook, который по умолчанию создает lock-файл. Этот менеджер относительно нов и тяжело сказать о его надежности и готовности к полноценному использованию. Например, в моем случае он не работал потому что общие папки (shared folders) в VirtualBox не поддерживают символические ссылки.

Автор: limonte

Источник

* - обязательные к заполнению поля


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js