Как опубликовать библиотеку Angular Shared для частного git-сервера - PullRequest
1 голос
/ 24 апреля 2019

Я создал библиотеку angular 6, используя ng generate library my-lib, и теперь мне нужно ее опубликовать, однако она не может перейти в NPM, поскольку это частный код.

В моей компании у нас есть частный gitсервер и мне нужно опубликовать там, у нас уже есть несколько библиотек NPM Node.js, опубликованных там, но публикация Angular доставляет нам проблемы.

Мне удалось собрать библиотеку с ng build my-lib, а затем cd dist/my-libи упаковав его в npm pack, я получаю связанную библиотеку .tgz, которую можно установить непосредственно в другой проект.

Однако это не очень хорошее решение для распространения контролируемых версий.

Итак, после некоторых исследований я нашел лучшего кандидата, который пока использует git subtree, для размещенияdist/my-lib в другое хранилище, затем его можно легко установить в другой проект с помощью npm install git+ssh://git@server:/git/my-lib-dist.git На основе этого руководства Совместное использование библиотеки Angular 6 между несколькими приложениями

Итак, я создал вторичное хранилище,и затем с помощью: git subtree add --prefix dist/my-lib MY-REMOTE master

и нажмите изменения с помощью: git subtree push --prefix dist/my-lib MY-REMOTE master

Это работает нормально, но есть проблема, мне пришлось удалить папку /dist из моего .gitignore для того, чтобы он работал, и теперь git отслеживает изменения встроенной библиотеки, и мне нужно зафиксировать и перенести ее в репозиторий, и встроенные библиотеки довольно тяжелые.

Как я могу это сделатьпапка dist/my-lib отправлена ​​в репозиторий dist и не отслежена или не отправлена ​​в исходное хранилище?

Это лучший подход к моему вопросу или есть лучшая альтернатива.

1 Ответ

0 голосов
/ 10 июля 2019

Я столкнулся с точно такой же проблемой в настоящее время.Я нашел этот tutotial: https://christianlydemann.com/how-to-use-git-subtrees-to-share-code-between-angular-projects/

Он использует git-поддерево для файлов src.Это кажется более легким, даже если вы затем создаете общий код с версиями из основного проекта.

Нашли ли вы другое решение, потому что ваш вопрос уже довольно старый.

...