带着大家探索webpack5中的Module Federation

本文深入探讨了webpack5的Module Federation特性,一种解决模块共享问题的方法。对比了CV大法、npm、CDN+webpack externals、git submodule等传统方案,介绍了Module Federation的优势,如动态加载代码、减少重复构建。并详细讲解了配置项如Host、Remote、remotes、exposes、shared等。通过实战演示展示了如何使用Module Federation实现模块的动态加载。同时,文章也指出了一些潜在问题,如环境要求高、无法做tree-shaking等,并提出了应对策略。最后,强调在使用时需权衡模块拆分粒度和版本控制。
摘要由CSDN通过智能技术生成

Module Federation 是 webpack5 中很牛逼的新特性,也是号称能改变 JavaScript 架构游戏规则的功能。接下来让我们慢慢揭开 Module Federation 的神秘面纱

模块共享的方案对比
场景:目前拥有项目 A 和项目 B,我们发现它们存在一定的共性,比如公共 UI 组件、utils 等。那我们如何同享这些公共信息呢?

简单粗暴-CV大法
直接将项目 A 的组件,copy 到项目 B 中,这样的方式有时候是比较快的,但也存在维护性极低的问题,后续两个项目都各自维护一套

抽象成 npm
我们可以将一些公共的模块抽象成 npm,每个项目都去安装该 npm 包,从而达到共享的目的

但是 npm 包的方式存在以下问题:

编译与构建:一些公共的工具库,框架以及 UI 库存在重复构建,造成性能低下
版本更新:需要各个项目都去升级。“发布 -> 通知 -> 更新” 的方式是比较低效率的

在这里插入图片描述

CDN + webpack externals
跟 npm 类似,只不过将其上传到 CDN,通过结合 webpack

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

CRMEB定制开发

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值