美文网首页
webpack5联邦模块

webpack5联邦模块

作者: 前端大魔王 | 来源:发表于2021-07-21 14:10 被阅读0次

什么是联邦模块

联邦模块说白了就是可以使一个应用动态使用另一个应用的模块。
比如,线上部署app1,app2。app1可以加载app2中一些模块。
其本质为一个 wepack app在运行时加载另一个webpack app的模块。


image.png

没有联邦模块前我们的解决方式:

  • npm 包。(适用于比较通用的 组件库,函数库)
  • monorepo项目管理 (适用于关联性较强的项目组为monorepo)
  • script 动态标签,暴露全局变量(一般没有使用,会存在全局变量污染,主要适用于一些公共依赖)
  • copy/past(不推荐)

我们发现上述的方式在有些情况还是很难实现不同app的代码复用如:app不在同一个monorepo,页面组件需要复用。如果基于npm或script实现页面组件复用又需要考虑公共依赖的处理(如:vue,react这些)

那么我们来看联邦模块是怎么优雅的解决这个问题呢?

项目实践

我们想创建两个项目:react项目,vue项目,react项目中使用vue项目的组件,通过new Component().$mount('selector') 来实现vue组件应用在react中。
总体项目结构:

image.png
配置模块暴露

该配置了暴露vueApp HelloWorld组件。


image.png
image.png
引用远端模块

在react-app项目中引用上一步中暴露的远端模块


image.png
image.png

network看下js加载。远端模块被加载,vue被单独加载一次。


image.png

加载过程

image.png

常见问题

Uncaught Error: Shared module is not available for eager consumption
//详见:https://webpack.js.org/concepts/module-federation/

相关文章

  • webpack5联邦模块

    什么是联邦模块 联邦模块说白了就是可以使一个应用动态使用另一个应用的模块。比如,线上部署app1,app2。app...

  • webpack5模块联邦源码探究

    前端 | Webpack5模块联邦源码探究.png 前言 虽然webpack5已经发布了一段时间了,但一直都没有研...

  • webpack5 Module Federation 模块联邦

    一、Module Federation 介绍 多个独立的构建可以组成一个应用程序,这些独立的构建之间不应该存在依赖...

  • webpack-5大特点

    webpack5大特点 代码拆分(支持异步模块加载) Webpack 有两种组织模块依赖的方式,同步(默认)和异步...

  • webpack的优势

    webpack5大特点 代码拆分(支持异步模块加载) Webpack 有两种组织模块依赖的方式,同步(默认)和异步...

  • webpack webpack < 5 used to inc

    webpack5中移除了nodejs核心模块的polyfill自动引入,所以需要手动引入。 2 vue.confi...

  • 在 vue/cli 中使用 Module Federation

    前言 webpack5 的新特性,分模块共同开发 所需环境: webpack v5 以上,由于我们用的是 vue-...

  • Webpack 5 - Uncaught ReferenceEr

    项目升级webpack5后报错:process is not defined 原因:webpack5不再自动 po...

  • Webpack5更新指南

    Webpack5更新指南 2020-10-10 Webpack5 正式 realease 相较于 Webpack4...

  • webpack-模块联邦(ModuleFederation)

    是什么 是一个用来解决多个应用之间代码共享的问题,可以让我们更加优雅的实现跨应用的代码共享的webpack插件。 ...

网友评论

      本文标题:webpack5联邦模块

      本文链接:https://www.haomeiwen.com/subject/gavrmltx.html