一、子应用

官网教程:https://micro-zoe.github.io/micro-app/docs.html#/zh-cn/framework/vite

1,步骤一:修改vue.config.js/vue.config.ts

注意:

(1)根据官方教程,basename需要更换的!

(2)plugin:[] 里面保留vue(),再加上自定义插件的内容!

(3)记得配置跨域!

import { join } from 'path'
import { writeFileSync } from 'fs'
// vite.config.js
export default defineConfig({base: `${process.env.NODE_ENV === 'production' ? 'http://my-site.com' : ''}/child-vite/`,plugins: [vue(), //这个不要删掉,亲测踩坑过,不要删// 自定义插件(function () {let basePath = ''return {name: "vite:micro-app",apply: 'build',configResolved(config) {basePath = `${config.base}${config.build.assetsDir}/`},writeBundle (options, bundle) {for (const chunkName in bundle) {if (Object.prototype.hasOwnProperty.call(bundle, chunkName)) {const chunk = bundle[chunkName]if (chunk.fileName && chunk.fileName.endsWith('.js')) {chunk.code = chunk.code.replace(/(from|import\()(\s*['"])(\.\.?\/)/g, (all, $1, $2, $3) => {return all.replace($3, new URL($3, basePath))})const fullPath = join(options.dir, chunk.fileName)writeFileSync(fullPath, chunk.code)}}}},}})(),],
})
    server: {port: 8081,//这个端口就是主应用挂载的url端口headers: {'Access-Control-Allow-Origin': '*' //记得配置跨域}}

2,步骤二:修改index.html的id名字

3,步骤三:同步修改main.js/main.ts挂载的容器

4,检查路由是否是history模式

到这里,可以去检验一下改好的子应用有没有问题,能不能正常跑,有问题及时调试,如果按照上面修改的话,最后跑起来的地址在应该是:

http://localhost:8081/child-vite/#/home;

注意:

(1)child-vite 就是你修改的 basename !

(2)home就是你路由redirect的那个路径,你也可以自己修改的,懂的哈!

二、主应用

接入vite子应用和接入其他的子应用大部分步骤一样,可以参考我前面的文章(若依vue3 前端微应用改造),不一样的部分就是main.js里面的microApp.start()方法需要修改;我们按顺序来吧。

1,步骤一:下载microapp依赖

npm i @micro-zoe/micro-app --save 或 yarn add micro-zoe/micro-app --save

2,步骤二:main.js/main.ts引入microapp并且改写

// 放在顶部
import microApp from'@micro-zoe/micro-app'
microApp.start({plugins: {modules: {// appName即应用的name值'micro-app': [{loader(code) {if (process.env.NODE_ENV === 'development') {// 这里 basename 需要和子应用vite.config.js中base的配置保持一致code = code.replace(/(from|import)(\s*['"])(\/child-vite\/)/g, all => {return all.replace('/child-vite/', 'http://localhost:8081/child-vite/')})}return code}}]}}
})

3,步骤三:router/index.js留一个给子应用挂载页面的路由

  {path: '',component: Layout,redirect: '/index',children: [{path: '/index',component: () => import('@/views/micro/micro2/index'),//根据相应的路径创建文件name: 'Index',meta: { title: '首页', icon: 'dashboard', affix: true }}]},

注意:我这上面是若依的index的路由,你可以根据自己的路由创建文件和路径;

4,步骤四:创建的页面里面挂载子应用端口

    <micro-app :name="micro-app" :url="http://localhost:8081/" //你在子应用vite.config.ts里面配的端口baseRoute="/micro-app" //这个官网说失效,我忘记删了,根据情况试试吧:data="dataForChid" @datachange="handleDataChange"inline  //官网要加的属性disableSandbox //官网要加的属性,关闭沙箱keep-alive style="height: 100%"></micro-app>

好了,大功告成了,可以试试启动主应用,有没有报错,进行调试;

三、报错案例

(1)错1:

说明子应用的vue()没加上,或者不小心给删掉了,记得给加上

(2)错2:

这个说明主应用的microApp.start()里面的配置写错了,或者和子应用配置的basename不一致,再去检查一下;

以上都是亲自踩过的错,能够解决的,另外可以去看官方的demo案例,看不同版本的实际写法,能够帮助你调试出错的问题:https://github.com/micro-zoe/micro-app-demo

四,公测版:

另外官网现在有了公测版,如果是公测beta版本接入vite不需要修改vite.config.js也不需要在基座设置插件处理;可以参考这个的链接方法:https://micro-zoe.com/docs/1.x/#/zh-cn/framework/vite;

1,步骤一:主应用下载依赖

npm i @micro-zoe/micro-app@beta --save
yarn add @micro-zoe/micro-app@beta --save

2,步骤二:切换iframe沙箱

3,步骤三:关闭虚拟路由

microApp.start({'disable-memory-router': true, // 关闭虚拟路由系统'disable-patch-request': true, // 关闭对子应用请求的拦截
})

亲测了,其他不是vite的子应用不受影响,至于会不会有后续的问题,可以关注官网的情况。希望对大家能够有所帮助,可以进官网的官方群里问问里面的大佬们,另外vite版本好像9月份会再更新,记得关注官网的消息哦,创作不易,多多点赞。

Microapp 接入vite子应用相关推荐

  1. 微前端qiankun接入Vite子应用含Vue3和React18

    主应用basic-vue-app(vue3+vite) 安装qiankun npm install qiankun 新建src/qiankun/index.js文件,进行单独的抽离 import { ...

  2. 【几乎最全/全网最长的 2 万 字】前端工程化完整流程:从头搭到尾(vue3 + vite + qiankun + docker + tailwindcss + iview......)

    文章目录 一.完整构建流程 1.在指定目录下执行 pnpm init,初始化 package.json 2.执行 pnpm install vite -D,安装 vite. 3.package.jso ...

  3. microapp微前端基础使用

    一开始我使用的是qiankun作为微前端框架 但是接入后发现改动成本太大了需要改子应用的打包模式 又要父应用丢出方法 所以选择microapp微前端 听说这玩意接入比较方便点 基础使用demo 首先要 ...

  4. 微前端MicroApp的学习(一):简单搭建项目

    前言 最近公司框架升级,微前端选择了京东的MicroApp ,因为后续会参与开发.提前来学习一波. 推荐文章 极致简洁的微前端框架-京东MicroApp开源了 初探 MicroApp,一个极致简洁的微 ...

  5. 微前端 - micro-app 数据通信

    前言 上文记录了如何在项目中接入 micro-app,本文主要记录下微前端基座应用和子应用之间的数据通信. 一. 基座应用向子应用发送数据 方式1:通过 data 属性发送数据 <templat ...

  6. ABG(应用负载网关)——终端共享接入检测方案、智能链路负载均衡(LLB)

    一.终端共享接入检测方案 1.1 共享接入检测新功能 支持对接入终端超限IP进行日志记录.告警干扰: 支持针对指定IP进行共享接入检测: 支持对接入终端的品牌/型号/操作系统进行识别: 用户可按需升级 ...

  7. micro-app的简单学习

    简述 本文承接上一篇手把手教你使用vue2搭建micro-app对micro-app进行简单的认识与学习. 因为上一篇只是对micro-app的搭建,并没有对具体的内容进行深入了解,所以本文是在上一篇 ...

  8. umi +qiankun 主应用动态装载子应用(路由)解决方案

    umi +qiankun 主应用动态装载子应用(路由)解决方案 前言 接上一篇(https://www.yuque.com/blueju/blog/gtgndg),上一篇中使用的都是运行时动态注册子应 ...

  9. vue2 项目接入 vite2 参考指南

    本文整理 vue2 项目接入 vite2 需要注意的事项. 基本配置 首先我们需要在项目中安装 vite:其次,要支持 vue2 还需要安装 vite-plugin-vue2. npm install ...

最新文章

  1. 《信息学奥赛一本通》 高精除以低精。输入两个正整数,求它们的商(做整除)。
  2. python的应用图标_python实现根据图标提取分类应用程序实例
  3. python下载图片到文件夹_请教大佬:下载图片,运行后文件夹创立了,但里边没有图,为什么...
  4. Flutter Trying to embed a platform view but the PrerollContext does not support embedding
  5. 二进制拆弹实验详解_Population Count算法-求二进制数中1的个数
  6. 注册登录时本地图片验证码
  7. Python对zip、tgz、rar压缩包的解压与读取
  8. 服务器位置设置在哪,服务器位置设置在哪
  9. java调用百度语音接口
  10. 双麦阵列回音消除及降噪模块 A-47
  11. 韩剧Search[1992-2005]
  12. 【013】故宫博物院数字文物库-让文物随时可赏
  13. Window Server 2012许可证过期解决方法
  14. android国际化语言编码对照表
  15. 名校女教授,强迫其男博士“发生性关系多年”!索赔750万
  16. 【OpenGL】绘制一个点
  17. 什么是温度传感器?温度传感器原理是什么?一文带你全部搞懂
  18. contentEditable,window.getSelection详解---可编辑div,容器,设置/获取光标位置,光标处插入内容及光标的操作
  19. 阿里员工感慨:涂鸦和阿里之间选了阿里,涂鸦上市了,小丑竟是我自己
  20. 触目惊心的股市圈钱骗局:阴谋

热门文章

  1. 【洛谷】P1803 凌乱的yyy 题解
  2. 数据结构二叉树先序遍历
  3. 【2018 国庆雅礼 NOIP 培训】OI七天乐
  4. 无线视频监控系统 PHP,基于ARM的无线视频监控系统的解决方案
  5. CMD命令行升级pip失败解决方法
  6. ASA-HA-FO-A/S
  7. 京东热2:约架是怎么变成约炮的
  8. PCL+Qt+VS可视化点云(二)出现 no override found for ‘vtkRenderWindow’错误解决方法
  9. 一年级前一学期计算机应用题,2011-2012学年第一学期〈一年级计算机应用基础〉期中考试试卷...
  10. Tesseract在安装过程中出现Download error Status of equ: Send Request Error. Click OK to continue!!!已解决#附安装包