Lerna脚手架搭建(十七):脚手架痛点分析与架构设计

本文最后更新于:2023年8月21日 上午

一、当前架构 👈

当前脚手架架构如下图:

二、痛点分析 👈

这样的架构设计已经可以满足一般脚手架需求,但还是有以下两个问题:

  1. cli 安装速度慢:所有 package 都集成在 cli 里,因此当命令较多时,会减慢 cli 的安装速度

  2. 灵活性差: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/
作者
Xuven Li
发布于
2022年5月26日
许可协议