如何发布Angular共享库以私有git服务器

时间:2019-04-24 13:18:17

标签: angular git npm git-subtree angular-library

我已经使用ng generate library my-lib制作了一个angular 6库,现在我需要发布它,但是由于它是私有代码,所以它无法发布到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 根据本指南Share Angular 6 Library between Multiple Apps

因此,我创建了一个辅助仓库,然后使用: 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 :(得分:0)

我目前正面临完全相同的问题。 我找到了这个用法:https://christianlydemann.com/how-to-use-git-subtrees-to-share-code-between-angular-projects/

他将git-subtree用于src文件。即使您随后使用主项目中的版本构建共享代码,这似乎也更加容易。

您是否找到了其他解决方案,因为您的问题已经很老了。