Частная библиотека Typescript как зависимость от npm

У меня есть библиотека Typescript, которую я упаковываю как модуль npm. Я легко интегрировал эту библиотеку, используя yarn link во время моей разработки веб-приложения.

Настало время настроить GitLab CI и позволить другим разработчикам работать над приложением внешнего интерфейса. В настоящее время я сталкиваюсь с проблемой распространения этого пакета.

Варианты, которые я определил, и проблемы, с которыми я сталкиваюсь:

  • yarn add <git-url>

Это добавляет исходный код, но, поскольку это машинописный текст, он не компилируется. Я не могу скомпилировать эту библиотеку, используя тот же tsconfig.json, Компилируется только один файл.

Это решение также имеет проблему, заключающуюся в том, что порт:22 заблокирован на машинах разработчика. Это помешает им использовать git+ssh, Я не вижу, как CI сможет получить этот пакет, который также будет работать для разработчиков.

  • yarn add tar-ball

Я пытался использовать тарбол, но нет очевидного способа сохранить этот тарбол. GitLab не предоставляет артефакты, созданные из сборок, другим конвейерам CI.

  • продавая пакет

Далее я решил попробовать добавить модуль узла в репозиторий git. Но я не нашел способа помешать пряже автоматически удалять этот пакет. Если я добавлю библиотеку node_modules затем он удаляется при запуске yarn,

Конечно, я могу переключиться на использование частного модуля npm. Но мне кажется, что должны быть простые альтернативы для распространения внутренних пакетов, если у вас уже есть отличная среда GitLab.

Как я могу распространять пакет Typescript в частном порядке без частного реестра NPM?

1 ответ

Решение

Один из вариантов - продать пакет, но поместить его в пользовательский каталог (не в node_modules), например my-libraryа затем в dependencies в package.json, записывать "my-library": "link:my-library", Это заставит Yarn создать символическую ссылку из node_modules/my-library в my-library, Смотрите эту тему для получения дополнительной информации о link: синтаксис.

Другие вопросы по тегам