Appearance
什么是Monorepo
- 英文:Monolithic Repository
- 中文:单一仓库(多项目管理方案)
- 概念:一个仓库管理多个项目的工程化开发管理模式
- 优势:
- 便于代码和依赖在多个项目之间的共享
- 更简单便捷的版本控制
- 提高多项目的构建与部署的便捷性
- 提高代码的复用性和团队协作的便利性
- 应用
- 项目的子项目架构(微前端)
- 对于工具分类的架构(轮子)
- 对于复杂且丰富的应用需求的功能切片
Repository项目管理的发展历程
- 单仓库单应用模式 - Monolith
- 一个仓库管理一个单一应用
- 缺点:随着项目的功能迭代,单应用的规模会逐渐变大,难以维护
- 多仓库多应用模式 - Multirepo
- 多个应用分配给多个对应的仓库进行管理
- 缺点:无法进行项目依赖与代码共享,多应用之间的结合变得复杂且功能
- 但仓库多应用 - Monorepo
- 一个仓库管理多个应用
- 优点:业务代码分离解构,应用之间依赖与代码、项目配置、构建木梳、项目扩展更方便
Monorepo的组成
- apps -> 应用(一个大型项目中的子应用)
- packages -> 本地包(Local Package)
- 依赖的公有和私有
- 配置的公有和私有
微前端
- 微前端是一种复合型项目的开发方式(一个大项目中的小应用的开发方式)
- 微前端的核心就是微应用
- 一个复合型项目拆分成小应用进行开发,最后将所有小应用正和成一个大项目的开发方式称为微前端开发
微前端的好处
- 在项目整体框架下,可以独立开发、打包、部署、发布微应用
- 独立应用的调试和部署,对整个项目的运行影响比较小(基本上没啥影响)
- 应用的独立性、复用性强
- 技术栈不限
微前端开发模式
- MPA -> Multiple Page Appplication:多页面应用
- SPA -> Single Page Application:单页面应用
SPA模式构建方式
- 基座:提供给多应用的注册与应用路由设置的工具
- 微应用接入基座
Monorepo是单仓库多应用模式,spa是单页面项目多独立开发
Monorepo+qiankun构建项目
基础配置
- react vite为基座
- 基座必须注册子应用
- vue vite为微应用1
- react vite为微应用2
qiankun在vite中是无法直接使用的,需要借助vite-plugin-qiankun 使用@vitejs/plugin-react在qiankun中使用,编译后会的代码会有import react,所以不可以使用@vitejs/plugin-react或者使用webpack构建