我已经使用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存储库,而不跟踪或推送到源存储库?
这是解决我问题的最好方法,还是有更好的选择。
答案 0 :(得分:0)
我目前正面临完全相同的问题。 我找到了这个用法:https://christianlydemann.com/how-to-use-git-subtrees-to-share-code-between-angular-projects/
他将git-subtree用于src文件。即使您随后使用主项目中的版本构建共享代码,这似乎也更加容易。
您是否找到了其他解决方案,因为您的问题已经很老了。