Частная библиотека 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:
синтаксис.