Lerna脚手架搭建(十七):脚手架痛点分析与架构设计
本文最后更新于:2024年12月10日 下午
一、当前架构 👈
当前脚手架架构如下图:
二、痛点分析 👈
这样的架构设计已经可以满足一般脚手架需求,但还是有以下两个问题:
-
cli 安装速度慢:所有 package 都集成在 cli 里,因此当命令较多时,会减慢 cli 的安装速度
-
灵活性差:init 命令只能使用 @xuven-cli-dev/init 包,对于集团公司而言,每个 bu 的 init 命令可能都各不相同,可能需要实现 init 命令动态化,如:
- 团队 A 使用 @xuven-cli-dev/init 作为初始化模块
- 团队 B 使用自己开发的 @xuven-cli-dev/my-init 作为初始化模块
- 团队 C 使用自己开发的 @xuven-cli-dev/your-init 作为初始化模块
这时对我们的架构设计就提出挑战,要求我们能够动态加载 init 模块,这将增加架构的复杂度,但大大提升脚手架的可扩展性,将脚手架框架和业务逻辑解耦。
三、脚手架架构优化 👈
当前脚手架流程图:
优化后流程图:
四、脚手架命令动态加载功能架构设计 👈
架构设计图如下:
Lerna脚手架搭建(十七):脚手架痛点分析与架构设计
https://blog.xuven.xyz/post/ArchitectureDesign/