Angular 2的前端"微服务"

Spa*_*rus 11 javascript angular

我正在寻找一个奇怪的情况的解决方案.让我们快速浏览angular2-seed项目,以便更好地解释:https://github.com/mgechev/angular2-seed/tree/master/src/client/app.

在该项目中,我们有3个独立的模块 - 关于,家庭,共享.我正在寻找的是一种隔离这些发展的方法,因此我们最终能够独立发布每一部分.例如,假设A队正在研究关于部分,而B队正在开展工作.每个工作都已完成,我们已准备好发布,但是我们发现about部分缺少一个关键功能,但我们仍然希望将更改发布到主页部分.我们正在寻找的是一种实现这一目标的方法.

以下是一些已经探索过的解决方案,但我并不满意:

  • 家庭/关于完全不同的应用程序(在我看来,这消除了SPA的许多好处).
  • 让每个模块(about,home,shared)汇总到它自己的NPM包中.当我们去部署时,我们可以通过某种方式协调拉出这些模块的所有已发布的NPM包.

KTC*_*TCO 8

业务流程:

让每个团队构建一个组件库(NPM)并将它们放入一个Angular 2应用程序中.这样,团队可以使用微服务原则进行开发,但您可以部署SPA 整体,从而降低复杂性.

大型组件库应该有多个软件包和模块,因此您可以选择引入的内容.

微服务之间的通信:

如有必要,组件库可以通过后端消息总线进行通信.

如果组件库之间需要直接的客户端集成,那么你需要一个第三个组件库,abouthome依赖于,它包含一个轻量注射消息/事件服务.您可以使用RxJS主题实现该服务.