使用 webpack 5's module federation 动态加载远程模块组件
解决不同:开发、测试、生产环境,动态改变请求模块地址
npm install vue-module-federation-loader
// script标签里
window.MF_REMOTE= [
{
name:'remote',// 远程应用模块名称唯一标识
url:'http://localhost:9091',
// 自定义参数
// options:{
// // a:"xxx"
// // 'Footer':'Footer123',
// // 'Header':'Header123'
// }
},
];
// 入口处引入或者CDN方式引入(vue-module-federation-loader/dist/indexjs),请自行部署
import "vue-module-federation-loader";
// 获取子应用remote的Header组件
const Header = async()=> await $MF.lazyLoad('remote/Header');
new ModuleFederationPlugin({
name:"remote", // 用tm-cli构建项目,自动获取名称可以不用配置
exposes:{
'./Header':'./src/components/Header.vue'
},
})
- tm-cli@0.5.2+