游戏电视苹果数码历史美丽
投稿投诉
美丽时装
彩妆资讯
历史明星
乐活安卓
数码常识
驾车健康
苹果问答
网络发型
电视车载
室内电影
游戏科学
音乐整形

Webpack5新特性之模块联邦

  大家好,很高兴又见面了,我是web前端分享,由我带着大家一起关注前端前沿、深入前端底层技术,大家一起进步,也欢迎大家关注、点赞、收藏、转发!1引言
  Webpack5
  先说结论:Webpack5模块联邦让Webpack达到了线上Runtime的效果,让代码直接在项目间利用CDN直接共享,不再需要本地安装Npm包、构建再发布了!
  我们知道Webpack可以通过DLL或者Externals做代码共享时CommonChunk,但不同应用和项目间这个任务就变得困难了,我们几乎无法在项目之间做到按需热插拔。
  模块联邦是Webpack5新内置的一个重要功能,可以让跨应用间真正做到模块共享,所以这篇文章将带你了解什么是模块联邦功能。2概述精读NPM方式共享模块
  想象一下正常的共享模块方式,对,就是NPM。
  如下图所示,正常的代码共享需要将依赖作为Lib安装到项目,进行Webpack打包构建再上线,如下图:
  对于项目Home与Search,需要共享一个模块时,最常见的办法就是将其抽成通用依赖并分别安装在各自项目中。
  虽然Monorepo可以一定程度解决重复安装和修改困难的问题,但依然需要走本地编译。UMD方式共享模块
  真正Runtime的方式可能是UMD方式共享代码模块,即将模块用WebpackUMD模式打包,并输出到其他项目中。这是非常普遍的模块共享方式:
  对于项目Home与Search,直接利用UMD包复用一个模块。但这种技术方案问题也很明显,就是包体积无法达到本地编译时的优化效果,且库之间容易冲突。微前端方式共享模块
  微前端:microfrontends(MFE)也是最近比较火的模块共享管理方式,微前端就是要解决多项目并存问题,多项目并存的最大问题就是模块共享,不能有冲突。
  由于微前端还要考虑样式冲突、生命周期管理,所以本文只聚焦在资源加载方式上。微前端一般有两种打包方式:子应用独立打包,模块更解耦,但无法抽取公共依赖等。整体应用一起打包,很好解决上面的问题,但打包速度实在是太慢了,不具备水平扩展能力。模块联邦方式
  终于提到本文的主角了,作为Webpack5内置核心特性之一的FederatedModule:
  从图中可以看到,这个方案是直接将一个应用的包应用于另一个应用,同时具备整体应用一起打包的公共依赖抽取能力。
  让应用具备模块化输出能力,其实开辟了一种新的应用形态,即中心应用,这个中心应用用于在线动态分发Runtime子模块,并不直接提供给用户使用:
  对微前端而言,这张图就是一个完美的主应用,因为所有子应用都可以利用Runtime方式复用主应用的Npm包和模块,更好的集成到主应用中。
  模块联邦的使用方式如下:constHtmlWebpackPluginrequire(htmlwebpackplugin);constModuleFederationPluginrequire(webpacklibcontainerModuleFederationPlugin);module。exports{otherwebpackconfigs。。。plugins:〔newModuleFederationPlugin({name:apponeremote,remotes:{apptwo:apptworemote,appthree:appthreeremote},exposes:{AppContainer:。srcApp},shared:〔react,reactdom,reactrouterdom〕}),newHtmlWebpackPlugin({template:。publicindex。html,chunks:〔main〕})〕};
  模块联邦本身是一个普通的Webpack插件ModuleFederationPlugin,插件有几个重要参数:name当前应用名称,需要全局唯一。remotes可以将其他项目的name映射到当前项目中。exposes表示导出的模块,只有在此申明的模块才可以作为远程依赖被使用。shared是非常重要的参数,指定了这个参数,可以让远程加载的模块对应依赖改为使用本地项目的React或ReactDOM。
  比如设置了remotes:{apptwo:apptworemote},在代码中就可以直接利用以下方式直接从对方应用调用模块:import{Search}fromapptwoSearch;
  这个apptwoSearch来自于apptwo的配置:apptwo的webpack配置exportdefault{plugins:〔newModuleFederationPlugin({name:apptwo,library:{type:var,name:apptwo},filename:remoteEntry。js,exposes:{Search:。srcSearch},shared:〔react,reactdom〕})〕};
  正是因为Search在exposes被导出,我们因此可以使用〔name〕〔exposesname〕这个模块,这个模块对于被引用应用来说是一个本地模块。3总结
  模块联邦为更大型的前端应用提供了开箱解决方案,并已经作为Webpack5官方模块内置,可以说是继Externals后最终的运行时代码复用解决方案。
  另外Webpack5还内置了大量编译时缓存功能,可以看到,无论是性能还是多项目组织,Webpack5都在尝试给出自己的最佳思路,期待Webpack5正式发布,前端工程化会迈向一个新的阶段。参考资料
  原文链接:https:github。comascodersweeklyblobmasterE5898DE6B2BFE68A80E69CAF144。E7B2BEE8AFBBE3808AWebpack520E696B0E789B9E680A72020E6A8A1E59D97E88194E982A6E3808B。md

每次朋友聚会喝酒,都是悄悄先把账结了,这样的事情,你做过吗?虽说最近几个月开始戒酒了,但是也有不好的感觉,什么感觉呢?那就是以前的小伙伴们,都不带你玩了,哈哈。所以现在,隔三差五的,还是要和酒友们聚一聚,多少还是要喝一点的。这里也……贝弗利加盟湖人联手詹姆斯!米切尔或引发三队交易爵士悍将离队上个月,犹他爵士将鲁迪戈贝尔交易到明尼苏达森林狼,得到了老将贝弗利。目前,爵士正在交易米切尔,而贝弗利吸引了很多球队的注意。虽然爵士和尼克斯之间的谈判一直在进行,但……天天烧烤天天夜宵,后果多严重知道吗?网友朋友的肾已坏掉了关于暴饮暴食,饮食没规律,天天在外用餐,天天点外卖,这个话题,我一直打算要好好写一下的,因为看到了太多因饮食不合理导致身体出现问题的人和事儿,结合自己的所见所闻,感觉就这一块,……开锅养锅的具体方法,以及与锅相关的基础知识,值得收藏头几天说了一下关于自己喜欢的厨房用品,喜欢下厨房做菜的人,都有自己喜欢的厨房神器,我当时就提到了自己的神器,那就是炒锅,有朋友就说了,锅是最普通的厨房用品,怎么把它说成是神器了……鲁菜虽然位列八大菜系,但是颇有争议的是,它到底有几个分支?鲁菜的发源地到底是哪里?大部分的说法是,鲁菜发源地是山东烟台的福山区,根据是,在清朝末期,宫廷里的很多御厨都是来自于烟台的福山,民国时期,北京大小鲁菜馆的厨师也大部分来自……四川辣椒红油的正宗做法,地道的辣味和香味,三次泼油是关键我们平时做菜,有一种调味料经常能用到,那就是辣椒红油,很多菜品的烹制都离不开这个辣椒红油,更不要说喜欢吃辣的朋友了。辣椒红油的用途非常广泛,小到可以佐餐、做蘸料,大到可以用在很……中伊之战最大收获乔帅终找到男篮外线组合说明书上回全场压制哈萨克斯坦最后赢12分,这场与伊朗纠缠三节也是赢了12分,男篮果真符合我国的外交原则,民主平等的对待每一个国家。虽然看得出乔帅是在有意的调试阵容考察球员,但上……爱情不可以太卑微在感情中卑微的人,会得到爱情吗?最近看到不少新闻,爱情中的一个人面对另一半提出的决裂,为了挽回感情,不惜通过屈膝下跪,希望获得对方的怜悯。但是结果一般是:越卑微,越……巴特勒被驱逐阿德巴约2011453,热火胜开拓者在今日的常规赛中,热火主场10492胜开拓者。塞蒙斯和麦克勒莫各有得分,考文顿三分命中开拓者102开局。阿德巴约中投、邓罗命中三分,但CJ又是连中三分;斯特鲁斯和考文顿各……男篮亚洲杯存变数!全队仅剩下8位球员,2球星如愿进入国家队男篮世预赛第一阶段的比赛已经结束,我们取得了2胜2负的成绩,勉强可以接受,可惜的是我们第2场与澳大利亚的比赛,前三节保持着比分的持平,最后一节却表现异常的离谱,广东男篮的两大球……男男生子有望成功!科学家成功让雄性小鼠产生卵细胞一直以来,人们一直对两性生殖有着浓厚兴趣,体外受精、胚胎移植、人造子宫等也是科学界的热议话题,近期,有研究学者在第三次人类基因组编辑国际峰会上宣布:已实现了利用雄性小鼠细胞制造……1张图,看懂50种香料味型分类,以及它们在烹调中的作用,收藏大家平时在卤食制作或者其他烹调制作的过程中,会经常用到各种香料,对于大部分人而言,接触最多的就是各种香料的配方,以及具体的用量,这很正常。但是重点来了,这些只是属于具体的……
印度人不吃猪肉,也不吃牛肉,连鱼肉都很挑,那印度人吃什么肉?印度的神奇之处:有时法律无法惩戒的事情,却可以通过宗教来解决,奇特的印度饮食,同样也有着严格的忌讳。印度是世界上受宗教影响最多的国家之一,从出生开始就受到了宗教的影响。……有哪一种酱料可以让大多数素菜都炒得很好吃?炒素菜还是要分开是叶菜块茎豆制品菌类之类的。比如叶菜,潮汕集锦的普宁豆酱当仁不让,放油,落豆酱稍稍煸炒,放叶菜,沿锅沿加入少许开水,盖上锅盖,一两分钟开盖即成。试试就知道……偷学老阿姨水烙玉米饼,不用一滴油,一次烙20张,比煎饼还好吃大家好,这里是小柒美食频道,一个喜欢研究美食的爱好者,每天分享一个小厨艺,生活总是给我无限的快乐,如果你也你也喜欢做美食,欢迎关注,我们可以互相分享餐桌上的美味,为家人做出营养……乌鲁木齐米东区哪家烤肉好吃?乌鲁木齐市主城区炭烤烤肉难寻,多以电或燃气烤肉为主,但米东区似乎不大受限制。头条上有朋友说米东区三道坝镇和羊毛工镇都有好吃的烤肉,但是我没去吃过。作为一个资深吃货,……科学家们在雨滴中发现了与癌症有关的微小塑料他是看不见的,无味的,有各种形状和大小。它们可以在陆地上、我们的河流和海洋的最深处找到。而现在,它们正在从我们的天空中坠落。微塑料,即出现在我们的海洋、食物和身体中的微小……温馨提醒买白酒时,遇到这4种扭头就走,都是勾兑酒喜欢喝酒的人特别多,少喝怡情、多喝伤身,其实大家都明白这个道理,但是有些喜欢喝酒的人,坐到酒桌上的时候控制不住自己,总会把自己喝得大醉烂醉,白酒的种类特别多,用纯粮食酿制出来的……日式南瓜挞的配方及制作一、原料配比:挞底:黄油:50g糖:26g蛋液:16g低粉:90g南瓜层:去皮南瓜:400g糖:6g淡奶油:64g玉……泡发干鱿鱼,只用水泡是不够的,多放2味料,鱿鱼泡得又大又新鲜泡发干鱿鱼,只用水泡是不够的,多放2味料,鱿鱼泡得又大又新鲜说到海鲜,其实我还真是不太感兴趣,像什么扇贝、生蚝、螃蟹之类的,都不怎么喜欢。但是对大虾、鱿鱼这两种,可谓是爱……谷歌研究人员使用量子计算机运行世界上最大的化学模型(图片来源:网络)不久前,谷歌人工智能量子团队的研究人员使用量子计算机计算了迄今为止最大规模的化学模型。该量子算法的进一步发展将使我们能高精度地预测化学反应的过程,帮助化……普通饭馆的厨师与高级酒店的大厨做菜区别在哪?普通饭馆的厨师与高级酒店的大厨做菜区别在哪?我跟着师傅,从大排档干到饭店,再到星级酒店,最后是私房菜,当然了,私房菜是真正饕餮客光顾的地方,而不是传说中某些人的私人会馆,……人参泡到酒里能够成活吗?为什么?人参泡酒是很多人特别喜欢的一种泡酒方式,从你发的图片看出,里面的是枸杞,枸杞属于温补,而人参是属于大补,现在很多人都有喜欢使用枸杞泡水或泡酒喝。说到人参泡在酒里能不能存活,就要……为何有的女性体毛旺盛,有的却光秃秃?这是怎么回事,了解下身体上的毛统称为体毛,是由角蛋白质鳞屑层层堆栈所组成。生物有不同的体毛,即使同种生物,体毛毛色、生长速率也不尽相同。体毛本来就是每个人都会有的,而在性别偏见的视角下,体毛……
友情链接:易事利快生活快传网聚热点七猫云快好知快百科中准网快好找文好找中准网快软网