最近在跟组内的大佬们一起开发着一个微前端项目,这个项目以前就有,但是项目过于庞大,部署构建起来非常麻烦,所以打算用微前端重构一下。
背景:
1、为了实现独立分布的不同库之间的资源共享,采取了npm包形式的抽离应用。但这么做会让发布效率变得非常低下,因为在每个npm包发版后,所有使用了该包的应用都更新npm包的版本,在各自构建发布一次,过程相当繁琐。并且在多团队协作下,npm包的发版和使用也会容易变得不规范。
什么是微前端?
其实就是将一个庞大的前端项目拆分成多个独立灵活的小型应用。
这样做有啥好处呢?
1、减少子项目之间的耦合,提高项目的扩展性,使项目更小更灵活。
2、各个子项目可以独立开发部署,互不依赖,每个项目都有自己独立的package
3、同步更新,多个子应用依赖于同一个服务应用的功能模块,如有变动只需要更新服务模块,其他业务应用就能立马得到更新,从而缩短了更新流程和节约了更新成本。
4、增量升级,在庞大的旧项目中,如果有大量过时弃用的东西,若要重写,则需要停止当前新功能的开发,进行全量代码更新,但是微前端可以让我们将旧的应用程序逐步地翻新,与此同时不受影响地继续为我们的客户提供新功能。