从多个存储库构建Angular 6门户

时间:2019-03-30 16:56:31

标签: angular artifactory portal

我正在尝试构建一个Angular6门户,其中包括4-5个处于不同开发阶段的现有Angular6仪表板(有些是新的,有些已经在生产中,但是所有都在积极开发中)。

我和几个角形大师交谈。有些人建议使用Nrwl NX(但是,因为我在大银行里,而且他们没有monorepo,所以这行不通,而且很难说服并且花很多年在过渡上)。

其他人建议使用iFrame,但表示他们尝试过,但不值得(多浏览器很难使用,反应迟钝,儿童与父母之间的交流有限,路由有限)。

我已经看到CLI approach可以正常工作,但是由于所有仪表板都处于活跃开发中,因此我无法将其代码放入门户中,因此限制太多。此外,其中一些现在已作为独立部署。
有没有办法使子应用程序位于门户外部(让我们在单个仓库中说相同级别的应用程序)?

元素可以提供帮助吗? (CDK门户功能似乎不起作用)

另一个问题是,如果我需要将一些参数从门户传递到仪表板(假设要显示过滤器结果), 那怎么办?

请告知。

TIA, 奥列格。

1 个答案:

答案 0 :(得分:1)

我可以想到以下选项:

选项1

最简单的方法是拥有1个额外的Angular应用程序,其作用类似于5个仪表板的中央枢纽。这个应用程式将有5个连结至每个资讯主页。可以通过对用户透明的方式来完成此操作,他们只会注意到从一个应用程序转到另一个应用程序会刷新整个页面。

例如,在下图中,可以将Tags链接转到“标签仪表板”,将Users链接转到“用户仪表板”。用户会注意到HTML的来源:

enter image description here

选项2

您可以结合使用that link you sharedGit Submodules中的解决方案。子模块是git repo内部的git repo,每个模块均可独立修改。因此,每个团队都可以在自己的git repo中对自己的仪表板进行更新。您将在新的git repo中创建一个新的angular应用程序,并将其他存储库添加为子模块。仅当您要发布整个应用程序时,才需要将其最新的master分支拉到父存储库中,然后从那里发布。