# qiankun-demo
**Repository Path**: notify/qiankun-demo
## Basic Information
- **Project Name**: qiankun-demo
- **Description**: 乾坤前端微服务使用演示
- **Primary Language**: JavaScript
- **License**: MIT
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 1
- **Created**: 2026-01-08
- **Last Updated**: 2026-01-08
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# 乾坤前端微服务使用演示
> 技术栈:qiankun,vite,vue,vue-router,element-plus,tailwindcss
本项目是基于`vite`搭建的`qiankun`项目,在`vite`中使用`qiankun`网上有两种方案
1、方案一:修改vite默认输出的target模式,将module改为esnext,开发环境主应用无法联通子应用
2、方案二:使用`vite-plugin-qiankun`插件
**本项目提供第三种方案:在主应用定义子应用的生命周期函数,通过重写乾坤`fetch`方法将子应用入口文件用`script`标签加载,并使用`@rollup/plugin-alias`插件解决应用组件共享问题**
## 安装
```bash
# 主应用
cd main
npm i
# 子应用1
cd ../sub1
npm i
# 子应用2
cd ../sub2
npm i
```
## 开发
```bash
# 在 main 目录下
npm run dev
# 在 sub1 目录下
npm run dev
# 在 sub2 目录下
npm run dev
```
打开浏览器访问`http://localhost:5173/`
## 构建
```bash
# 在 main 目录下
npm run build
# 在 sub1 目录下
npm run build
# 在 sub2 目录下
npm run build
```
将`main/dist`目录内容放到静态服务器上即可运行
## 关键技术
- 在主应用创建子应用生命周期,重写乾坤`fetch`方法解决开发环境访问子应用问题
- 在`.env`文件配置子应用包名
- 用`@rollup/plugin-alias`插件解决公共模块依赖问题
- 主应用和子应用保持相同路由解决浏览器历史记录错误问题
## 注意事项
- 路由命名尽量与组件文件位置保持一致,长得丑没关系,重要的是方便维护,工程越大,找文件成本越高
- 对外共享的组件内部`import`其它文件时要用相对路径,不能用`@`开头的路径,避免调用组件方找不到位置
- 乾坤`prefetch`配置为false,禁止预加载子应用避免开发环境非首个加载的子应用不生效
## 支持作者
支持作分享更多前端技术,不需要打赏一块几毛,不需要请作者喝咖啡,只需要下载作者和他兄弟开发的游戏就ok
TapTap平台《三国时代2》
TapTap平台《仙湖棋局》