Javascript 大规模企业应用程序拆分为微型前端应用程序并独立部署

Javascript 大规模企业应用程序拆分为微型前端应用程序并独立部署,javascript,angular,Javascript,Angular,我有5个模块(A、B、C、D和E)和一些共享资源(服务、指令和CSS)的angular应用程序。现在我必须把这5个模块分成5个微型前端应用程序。当页面url更改时,应动态加载每个微应用程序(当url为“localhost:4200/A

我有5个模块(A、B、C、D和E)和一些共享资源(服务、指令和CSS)的angular应用程序。现在我必须把这5个模块分成5个微型前端应用程序。当页面url更改时,应动态加载每个微应用程序(当url为“localhost:4200/AA”;当url为localhost:4200/B/page时,应加载微应用程序,B并完成加载(页面重新加载)当url从localhost:4200/A/pages更改为localhost:4200/B/pages时不应发生

确切地说,我想将我的angulaar应用程序分成5个微型前端应用程序,这些微型应用程序之间的共享资源最少。我应该能够独立部署这些微应用程序


我很难找到实现这一目标的最佳方法,我看过各种文章,但我仍然看不到一条清晰的道路。

正如你所知,在微前端架构中,每个微前端应用程序都应该从前端到后端独立工作(也就是说,您的后端应该有微服务体系结构,或者可以有某种BFF层GraphQL来实现工作的垂直切片)

您可以作为节点模块开发的所有微型前端应用程序。从JFrog或任何私有人工制品提供所有该模块

您可以创建一个UI缝合层(布局层),以根据您上面提到的要求集成所有模块

您应该避免所有微前端之间的直接通信,因此为了实现这一点,您可以创建事件总线(即自定义事件)来设置每个微前端之间的通信(如在所有微前端之间共享用户首选项)

您可以遵循这种微型前端架构来实现您的目标


遵循这一点,这是一篇非常好的文章。

Angular module lazy loading应该对您有所帮助:。或者您是否正在寻找某种方法/组织?如果您正在使用模块,那么我假设您已经在使用lazy loading,如果没有,这将对您有所帮助。老实说,在我看来,您已经基本解决了这个问题。我在一个使用o三个团队共享一个repo,但我们只处理了一个功能模块。问题是,您需要单独的repo,所以更改可以独立部署。@DanOswalt:不同的repo,应该独立部署一个模式是共享目录和功能目录。shared获得的资源超过一个功能模块eature可以访问。功能有每个模块,通过路由器延迟加载。团队方面,如果五个团队受到影响,您必须清楚谁以及如何更新共享/全局内容代码。显然,您不希望它受到太多影响,但您也不希望五个团队都开发本应完成一次并共享的实用程序服务。有用信息。正在处理解决方案,完成后将在此处更新。