一文大白话讲清楚webpack进阶——9——ModuleFederation实战

文章目录

一文大白话讲清楚webpack进阶------9------ModuleFederation实战

1. 啥是ModuleFederation

2. 创建容器应用

  • 创建项目并初始化,
  • 安装webpack和webpack-cli
  • 配置webpack.config.js
js 复制代码
const ModuleFederationPlugin = require("webpack/lib/container/ModuleFederationPlugin");
const path = require("path");
 
module.exports = {
  entry: './src/index.js',
  mode: 'development',
  output: {
    publicPath: 'auto',
  },
  plugins: [
    new ModuleFederationPlugin({
      name: "sharedLib",
      filename: "remoteEntry.js",
      exposes: {
        './MyComponent': './src/MyComponent.js',
      },
      shared: {
        react: { singleton: true, requiredVersion: '^17.0.0' },
        'react-dom': { singleton: true, requiredVersion: '^17.0.0' }
      }
    }),
  ],
};

3. 创建远程应用

  • 创建项目并初始化,
  • 安装webpack和webpack-cli
  • 配置webpack.config.js
js 复制代码
const ModuleFederationPlugin = require("webpack/lib/container/ModuleFederationPlugin");
const path = require("path");
 
module.exports = {
  entry: './src/index.js',
  mode: 'development',
  output: {
    publicPath: 'auto',
  },
  plugins: [
    new ModuleFederationPlugin({
      name: "app",
      remotes: {
        sharedLib: "sharedLib@http://localhost:3000/remoteEntry.js",
      },
      shared: {
        react: { singleton: true, requiredVersion: '^17.0.0' },
        'react-dom': { singleton: true, requiredVersion: '^17.0.0' }
      }
    }),
  ],
};

4. 启动远程应用

  • 启动远程应用

5. 使用远程应用的组件

  • 在容器应用中的入口文件引用组件
js 复制代码
import React from 'react';
import ReactDOM from 'react-dom';
import MyComponent from 'sharedLib/MyComponent'; // 从远程库中导入组件
import App from './App'; // 本地组件或其他逻辑
 
ReactDOM.render(<React.StrictMode><App /><MyComponent /></React.StrictMode>, document.getElementById('root'));
相关推荐
reembarkation9 小时前
使用pdfjs-dist 预览pdf,并添加文本层的实现
前端·javascript·pdf
KenXu9 小时前
F2C-PTD工具将需求快速转换为代码实践
前端
给月亮点灯|9 小时前
Vue3基础知识-setup()、ref()和reactive()
前端·javascript·vue.js
芜青9 小时前
【Vue2手录12】单文件组件SFC
前端·javascript·vue.js
冷冷的菜哥9 小时前
react实现无缝轮播组件
前端·react.js·typescript·前端框架·无缝轮播
csdn_aspnet9 小时前
Windows Node.js 安装及环境配置详细教程
windows·node.js
hrrrrb9 小时前
【Python】字符串
java·前端·python
阿笑带你学前端10 小时前
Supabase云同步架构:Flutter应用的数据同步策略
前端
梦想CAD控件10 小时前
(在线CAD平台)网页集成CAD SDK的方法
前端·javascript·github
万少10 小时前
可可图片编辑 HarmonyOS(6)水印效果
前端·harmonyos