1 заметка с тегом

НПМ

Подключайте приватные НПМ-пакеты правильно

Как подключать публичные или приватные пакеты, опубликованные в npmjs.com — более-менее понятно. Но иногда нужно разместить репозиторий с библиотекой в своём хранилище (например, корпоративном «Гитлабе»), чтобы скрыть код от посторонних глаз (допустим, что-то узкоспециализированное под конкретный проект).

Как гласит народная мудрость, «код обёрнутый в приватный метод, говнокодом не является».

Менеджер пакетов НПМ может выкачивать зависимости как по ХТТП, так и по ССХ. У использования каждого протокола есть свои плюсы и минусы, но я предпочитаю работать по ССХ.

Предположим, что у нас есть свой «Гитлаб» по адресу gitlab.company.ru, а в нём репозиторий lazarus. Попробуем его подключить:

npm i git+ssh://git@gitlab.company.ru:lazarus.git

Но такое подключение рано или поздно приведёт к неприятным последствиям: мы не указали мажорную версию библиотеки. Исправим это:

npm i git+ssh://git@gitlab.company.ru:lazarus.git#semver:^v1

Теперь, если выйдет мажорный релиз (вер. 2), наше приложение попрежнему будет работать с первой версией, даже если кто-то обновил все зависимости проекта.

Опытные разработчики пакетов применяют семантическое версионирование. В этом случае достаточно указать мажорную версию (цифру из первого разряда) и не бояться минорных обновлений и исправлений ошибок и дыр в безопасности (что весьма важно). Но в особо экстремальных случаях можно указывать версию вплоть до патча:

npm i git+ssh://git@gitlab.company.ru:lazarus.git#semver:^v1.3.3
2019   веб-разработка   НПМ