基础架构
流程架构
如图所示,架构分为4大阶段:
- 启动阶段:对本地环境进行检查,符合运行环境则继续
- 命令注册阶段:注册脚手架功能的相关命令
- 加载命令阶段:当调用注册的命令时,实时下载该命令的
npm包并运行 - 执行阶段:传入用户输入的参数并执行此命令模块
在第三阶段加载命令阶段优先判断参数是否包含本地模块地址,有则使用本地模块作为命令模块。若不存在则检查是否缓存有此模块,否则下载此模块,最后检查更新模块,进入到第四阶段执行。
目录拆分架构
核心组:
core命令组:
commands- 初始化
- 发布
- 清除缓存
模型组:
modelscommand命令Project项目component组件npm模块GIT仓库
支撑模块组:
utilsgit操作- 云构建
- 工具方法
api请求git api
拆分原则
根据模块的功能拆分:
- 核心模块:
core - 命令模块:
commands - 模型模块:
models - 工具模块:
utils
涉及模块技术:
核心库:
import-local:优先执行本地命令commander: 命令执行
工具库:
npmlog:打印日志fs-extra:文件操作semver:版本比对colors:命令行文本颜色user-home:用户主目录dotenv:读取用户目录下的.env环境变量root-check:是否root用户操作path-exists: 目录是否存在minimist:格式化命令传入参数pkg-dir: 使用此模块得到执行命令的文件所在模块的具体路径,sync方法查询指定路径文件的所属模块路径
