⚠️本文为博客园社区首发文章,未获授权禁止转载
大家好,我是aehyok?,一个住在深圳城市的佛系码农??♀️,如果你喜欢我的文章?,可以通过点赞帮我聚集灵力⭐️。
个人github仓库地址: https:github.com/aehyok
本文讲解微前端qiankun demo仓库地址 : https:github.com/aehyok/vue-qiankun 目前基于dev分支进行开发和测试
本demo已部署腾讯云 http://139.186.205.7:8080/(服务器配置较低,如有访问比较慢,请耐心等待)
微前端的讲解概念和理论的文章非常多,这里我就不谈了,我讲的肯定没有他们好。同样的github上的demo也非常多,然后我在公司项目引入时还是发现了许多问题,可能是时间太过于仓促,在github上clone下来的demo就真的是demo级别,根本谈不上应用。于是乎,我在公司微前端项目稳定了一段时间后,对qiankun乾坤微前端项目进行了简单的整理,特此发文进行记录,以及让更多入门的程序yuan们,在接触qiankun乾坤微前端框架时能够更快速的找到问题所在。
使用之后的感受
├── common/ # 存放共用的工具库
├── components/ # 存放公共的组件库
├── main-vite-app-ts/ # 存放主应用 main-vite-app-ts 的文件夹
|── webpack-app/ # 存放微应用 webpack-app 的文件夹
|── map-app/ # 存放微应用 map-app 的文件夹
|——..... # 后续添加使用之后,再进行对应的补充
|——qiankun.conf # 项目部署的nginx基础配置文件
|——build.sh # 通过脚本对主应用和子应用进行统一的打包
使用方法:通过在文件上import 相对路径的方式引入
使用方法:通过在文件上import 相对路径的方式引入(qiankun乾坤共享组件这块还不成熟,可参考webpack5中联邦模块 Module Federation)
通过 sh build.sh 执行脚本(如有使用请进行调节各个目录)当然你可以使用其他自动化的各种工具
## 1、当前脚本文件所在路径
current_path=$(cd $(dirname $0); pwd)
version='V0.1.0.0012'
## 打印当前目录
echo $current_path
# 打印当前目录文件列表
# echo $a*
#-----------------------------1、需要拉取的项目路径------------------
## 项目仓库本地文件路径
base_url ='/e/work/aehyok/github/vue-qiankun'
## 开始pull拉取项目
project_path=${base_url}
cd $project_path
git pull
echo -e "\033[32m拉取项目:${project_path} 成功\033[0m";
#-------------------------2、设置需要编译的项目路径----------------------
npmbuild_pathArr=(
"/e/work/aehyok/github/vue-qiankun/main-vite-app-ts" #主应用
"/e/work/aehyok/github/vue-qiankun/webpack-app" # webpack-app 子应用
"/e/work/aehyok/github/vue-qiankun/map-app" #map-app 子应用
)
#-------------------------3、 开始 build 项目--------------------------
for ((i=0;i<${#npmbuild_pathArr[*]};i++))
do
project_path=${npmbuild_pathArr[i]}
cd $project_path
yarn build
echo -e "\033[32m编译项目:${npmbuild_pathArr[i]} 成功\033[0m";
done
#-------------------------4、 开始拷贝文件到服务器----------------------
# /e/work/aehyok/github/qiankun 是我本地打包后的文件夹
scp -r /e/work/aehyok/github/qiankun/main root@139.186.205.7:/usr/local/qiankun/main/
######、拷贝完之后进行git 的提交
cd /e/work/aehyok/github/qiankun
## git add .
## git status
## sleep 1s
## message="chore:build.sh 脚本打包 commit-version:${version}"
## git commit -m $message .
## git push origin
echo "5秒后将自动退出本脚本:"
for i in $(seq 5 -1 1)
do
echo -e $i;sleep 1
done
exit
## 执行脚本 sh build.sh
上面说的应该都是demo中已经有的,或者正在进行优化中的。下面说的将会是继续优化,或者是将来有时间可能要做的一些思考吧。下面列举的是将要做,或者未来要做的(可能工作中如果有用到的进度就会在哪里,慢慢优化实践)
├── aehyok-form-vue3 # 自己封装的json表单生成器,JSON Table列表生成器、JSON阅读器 架构已有,待优化细节
├── qiankun # 微前端搭建框架,在主应用中
├── leaflet and geoman # web地图展示和编辑图层的组件,在map-app子应用中
├── rap2 # 本项目静态数据都放到了rap2中,作为一个api数据提供者,很方便
├── swiper # 可实现很多效果的轮播图
├── @ffmpeg/ffmpeg # 视频转码工具可通过wasm调用
├── swiper # 可实现很多效果的轮播图
├── vuex-persistedstate # 针对vuex 进行缓存设置
├── v-contextmenu # 鼠标右键事件触发弹窗
├── jsoneditor # json阅读编辑器
├── ......后续慢慢写进来
https://github.com/aehyok/vue-qiankun 本文中不涉及到代码,有关代码问题可以访问文章开头的微前端github demo 仓库,github仓库将会保持持续更新,不断优化小demo。
https://github.com/aehyok/vue3-ele-form 同时对json数据配置生成动态form表单和table列表也会持续优化,目前刚刚在公司项目中尝试,等机会合适可能就让同事一起参与进来。
https://github.com/aehyok/2021 最后自己每天工作中的笔记记录仓库,主要以文章链接和问题处理方案为主。