我正在为一些奇怪的情况寻找解决方案。让我们快速浏览一下 angular2-seed 项目,以便我可以更好地解释:https://github.com/mgechev/angular2-seed/tree/master/src/client/app https://github.com/mgechev/angular2-seed/tree/master/src/client/app.
在该项目中,我们有 3 个独立的模块 - 关于、主页、共享。我正在寻找一种隔离这些开发的方法,以便我们最终能够独立发布每个部分。例如,假设团队 A 正在处理“关于”部分,而团队 B 正在处理“主页”。每个工作都已完成,我们已准备好发布,但是我们意识到“关于”部分缺少一项关键功能,但我们仍然希望将更改发布到“主页”部分。我们正在寻找的是实现这一目标的方法。
以下是一些已经探索过的解决方案,但我不太满意:
- 为家庭/周围拥有完全不同的应用程序(在我看来,这消除了 SPA 的许多好处)。
- 将每个模块(关于、主页、共享)汇总到其自己的 NPM 包中。当我们进行部署时,我们将有一些方法来协调拉取这些模块的所有已发布的 NPM 包。
编排:
让每个团队构建一个组件库 (NPM) 并将其放入单个 Angular 2 应用程序中。这样,团队就可以使用微服务原则 http://martinfowler.com/articles/microservices.html,但您可以部署 SPAmonolith这降低了复杂性。
大型组件库应该有多个捆绑包和模块,这样您就可以有选择地选择要引入的内容。
微服务之间的通信:
如有必要,组件库可以通过后端消息总线进行通信。
如果组件库之间需要直接客户端集成,那么您需要第三个组件库about
and home
取决于,其中包含轻量级可注入消息/事件服务。您可以使用以下方式实现该服务RxJS 主题 http://reactivex.io/rxjs/manual/overview.html#subject.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)