最新公告
  • 欢迎您光临起源地模板网,本站秉承服务宗旨 履行“站长”责任,销售只是起点 服务永无止境!立即加入钻石VIP
  • 微前端 Emp 的 2021 | 掘金年度征文

    正文概述 掘金(Efox)   2021-01-07   660

    ?前言

    本文将以微前端 Emp 框架(后面称 Emp)项目成员的角度总结在过去 2020 中探索微前端框架的过程。
    欢迎 star: github.com/efoxTeam/em…

    ✨时间轴,emp 持续投入生产环境

    • 5月份 探索阶段初期 分别使用 single spa 搭建
    • 6月份上中旬 探索阶段中期 使用 module federation 搭建
    • 6月份下旬 确认可行阶段 讨论封装模型
    • 7月上中旬 决定使用 cli 模型封装 参考 create react app ,实现远程类型引用模型
    • 7月下旬 emp 1.0 版推出,内置dev,build,build -ts 同时配合 antd 用于生产环境
    • 8月 增加热更新 增加与优化 demo 用例
    • 9月 tuneDtsPlugin 作为独立 webpack plusin 和提高对低版本浏览器兼容性
    • 10月 升级webpack 5.1 和增加缓存功能,增加css type 检测 、 css module ts support ,支持cocos
    • 11月 emp正式开源,增加github ci测试, init 功能,增加emp支持用例,增加emp跨框架互相调用
    • 12月 探索在emp引入esbuild,esm,swc,分离es环境

    探索研究阶段

    分别调研 Single SPA 和 Module Federation

    Single SPA

    • 多框架并存、独立开发部署、状态不共享
    • 基站方式中心化运行
    • 具备完整的脚手架与种子项目
    • 部分模块需要改造才能调用

    综上所述,引入Single-spa 会增加部署、维护、改造的成本。所以转向研究 Module Federation 。

    Module Federation

    • 让代码直接在不同项目间通过远程调用 直接共享 任意内容(上下文、状态、组件、方法、模块)
    • 去中心化运行
    • 共享模块接近 100% 适用、接近 0 改造成本
    • 不具备脚手架与种子项目

    研究结论:基于 Module Federation 开发一套具有脚手架和种子项目的微前端框架,同时能够让已有项目快速接入。

    设计开发阶段

    参考 Create React App 开发脚手架及其命令

    底层脚手架架构参考成熟的 React 脚手架命令行工具 Create React App。
    分别提供了

    • dev
    • build
    • test
    • info
    • serve
    • analyze
    • tss

    包括但不限于以上命令

    emp.config.js

    使用 Webpack Chain 暴露内置 Webpack 配置,达到可以在 emp.config.js 进行项目配置

    Typescript 远程类型引用

    长期使用 React + Typescript 作为技术栈,发现在远程组件调用的时候没有类型,只能重新定义。
    所以提出要在远程项目中生成类型文件,然后在本项目中进行调用。保证 Typescript 在微前端上可行。

    ??‍?总结与感谢

    今年是我第一年正式参加工作,有幸作为应届生加入了欢聚时代的业务中台技术中心 Web 组。特别感谢 Ken 大佬和 攀攀大佬、Jeremy 大佬,三位大佬今年一直对我的耐心指导。今年是我目前开发生涯进步最快的一年。

    代码结构方面

    初入,对自己的代码要求还停留在能用就行的阶段。经过大佬们的指导与耐心 code review 之后,学会如何把封装功能达到高复用、“高内聚,低耦合”有内味,对 MVVM、 MVC 等设计模式有新的见解,不断把《重构》书中开发思想注入到日常开发。当然,期间也在不断巩固自身基础与业务理解、开发能力。

    业务开发能力

    在参与业务项目的过程中,学习到开发流程的整个闭环: 需求评审->分析产品文档与设计稿->开发排期->结合产品文档与设计稿进行实际开发->ci 自动化部署->域名与国际化部署配置->提测->修复 bug -> 上线 ->修复线上 bug 与持续维护。这个流程严谨而必要。

    需要微前端的原因

    在我对代码和业务的理解不断深入的时候,Ken 大佬提出要进行微前端架构探索。有了代码结构和业务开发的基础,我瞬间 get 到了微前端的必要性:最高效地复用有价值的功能。

    作者

    微前端 Emp 的 2021 | 掘金年度征文
    Benny Shi

    起源地下载网 » 微前端 Emp 的 2021 | 掘金年度征文

    常见问题FAQ

    免费下载或者VIP会员专享资源能否直接商用?
    本站所有资源版权均属于原作者所有,这里所提供资源均只能用于参考学习用,请勿直接商用。若由于商用引起版权纠纷,一切责任均由使用者承担。更多说明请参考 VIP介绍。
    提示下载完但解压或打开不了?
    最常见的情况是下载不完整: 可对比下载完压缩包的与网盘上的容量,若小于网盘提示的容量则是这个原因。这是浏览器下载的bug,建议用百度网盘软件或迅雷下载。若排除这种情况,可在对应资源底部留言,或 联络我们.。
    找不到素材资源介绍文章里的示例图片?
    对于PPT,KEY,Mockups,APP,网页模版等类型的素材,文章内用于介绍的图片通常并不包含在对应可供下载素材包内。这些相关商业图片需另外购买,且本站不负责(也没有办法)找到出处。 同样地一些字体文件也是这种情况,但部分素材会在素材包内有一份字体下载链接清单。
    模板不会安装或需要功能定制以及二次开发?
    请QQ联系我们

    发表评论

    还没有评论,快来抢沙发吧!

    如需帝国cms功能定制以及二次开发请联系我们

    联系作者

    请选择支付方式

    ×
    迅虎支付宝
    迅虎微信
    支付宝当面付
    余额支付
    ×
    微信扫码支付 0 元