首页 > 其他分享 >模块联邦-vite-plugin-federation

模块联邦-vite-plugin-federation

时间:2024-10-18 21:23:11浏览次数:9  
标签:__ vue federation plugin sale method vite

主应用

"@originjs/vite-plugin-federation": "^1.3.6"

vite.config.ts

build: {
      emptyOutDir: false,
      chunkSizeWarningLimit: 1000,
      minify: false,
      cssCodeSplit: !pluginOption.isUnionSub, // scc scoped
      target: ["chrome89", "edge89", "firefox89", "safari15"]
    }

插件

federation({
	name: "tpco_app",
	remotes: {
		"sale": `${option.webUrl}/sale/assets/remoteEntry.js`,
		"product": `${option.webUrl}/product/assets/remoteEntry.js`,
	},
	shared: ["vue", "pinia", "vue-router"]
})

路由加载组件

import {
  __federation_method_setRemote,
  __federation_method_getRemote,
  __federation_method_unwrapDefault
} from "virtual:__federation__";
__federation_method_getRemote("sale", "sale/index.vue")
	.then(moduleWrapped => __federation_method_unwrapDefault(moduleWrapped))
	.then(module => {
	module.name = componentName;
	resolve(module);
});

子应用

const pages = await axios.get(option.webApi + "/base/sysMenu/getMenus");
addPages(pages.data.data.map(item => item.component), option);
// exposePages = { "sale/index.vue": "./src/sale/index.vue" }
vitePlugins.push(federation({
	name: "remote-app",
	filename: "remoteEntry.js",
	// 需要暴露的模块
	exposes: exposePages,
	shared: ["vue", "pinia", "vue-router", "@jhlc/common-core"]
}));

标签:__,vue,federation,plugin,sale,method,vite
From: https://www.cnblogs.com/zhuxiang1633/p/18475067

相关文章

  • webpack+vue2 升级 vite+vue2 记录
    2024年了,webpack构建的vue2项目,由于路由较多,每次修改都会出现编译时间较长的问题(平均10~40秒),长期开发的话,非常的不友好。因此决定升级vite构建。参考了几篇文章,基本每篇遇到的坑都不少。本文做一个记录。主要是各个依赖的版本问题。全局安装的vite版本,建议版本4.5.3,......
  • vite+ts搭建的项目,@配置失效的解决办法
    今天创建新项目,按照往常的管理去配置@别名安装依赖:因为path是node中的模块,node又不支持ts,所以:yarnadd@types/node或者npmi@types/node然后进vite.config.ts,添加添加@别名resolve:{alias:{'@':resolve(__dirname,'src')}}其实到这里,就可以......
  • vue3+vite+ts+vue3-qr-reader实现移动端h5+pc端调起摄像头核销二维码
    1、首先我们看示例图:h5:pc:  2、我们开始做第一步就是装依赖:yarnadd vue3-qr-reader或者npminstall vue3-qr-reader我记得装完后还需要装一个 yarnadd-Dsass 3、封装一个组件公用:组件位置你们自己定我写在了components/QrScanner/ind......
  • tauri2.0-admin桌面端后台系统|tauri2+vite5+element-plus管理后台EXE程序
    原创Tauri2.0+Vue3+ElementPlus客户端通用后台管理系统Tauri2Admin。tauri2-vue3-admin基于最新跨平台框架Tauri2.0整合Vite5+Vue3全家桶搭建的一款轻量级桌面端后台管理系统模板。封装tauri2多窗口切换管理,提供4种通用布局模板,支持vue-i18n国际化、面包屑导航、多标签快捷路......
  • vite 使用rollup 打包为什么比webpack打包更小呢
    Rollup和Webpack之间的差异在于它们的打包方式和优化策略,这导致了Rollup通常能生成更小的包体积。以下是一些主要原因:1.树摇(TreeShaking)Rollup对ES6模块的静态结构分析非常出色,能够有效地删除未使用的代码。这一过程被称为树摇(TreeShaking),能显著减小最终包的体积。2......
  • vite打包 删除console,还有拆分太大的包配置
    在Vite中,你可以通过使用Rollup插件来自动去除console.log语句。一个常用的插件是rollup-plugin-terser,它能够压缩和优化代码,包括去除调试语句。以下是如何在Vite中配置该插件的步骤:安装插件:首先,你需要安装terser和rollup-plugin-terser:npminstallterserrollu......
  • html vite modulerpreload 和preload 作用和区别
    <linkrel="modulepreload">和<linkrel="preload">的功能在某种程度上是相似的,主要都是用于优化资源的加载性能,但它们之间有一些关键区别:相似之处预加载资源:两者都允许浏览器提前下载指定的资源,以减少后续使用时的加载延迟。非阻塞加载:都不会阻塞DOM渲染,浏览器......
  • 解决 Maven 插件报错:The plugin org.codehaus.mojo:flatten-maven-plugin:1.5.0 requi
    检查Maven版本:首先,确认当前使用的Maven版本是否与插件要求的版本一致。可以通过在命令行中输入 mvn-v 来查看当前Maven的版本信息。升级或降级Maven版本:如果当前Maven版本过低,需要升级到插件要求的版本;如果过高,可能需要降级。升级或降级Maven可以参考Maven的官......
  • Vite打包碎片化,如何化解?
    背景我们在使用Vite进行打包时,经常会遇到这个问题:随着业务的展开,版本迭代,页面越来越多,第三方依赖也越来越多,打出来的包也越来越大。如果把页面都进行动态导入,那么凡是几个页面共用的文件都会进行独立拆包,从而导致大量chunk碎片的产生。许多chunk碎片体积都很小,比如:1k,2k,3k,从......
  • electron-vite_4使用WebContentsView快速集成已有项目
    Web嵌入官方推荐使用WebContentsView;集成也比较简单,但还是需要你单独写点东西;src/main/index.ts进行修改import{app,shell,BrowserWindow,ipcMain,nativeImage,WebContentsView,dialog}from'electron';functioncreateWindow():void{//1.创建br......