脚手架需求分析和架构设计
将收获什么
- 掌握架构设计和技术方案设计全过程
- 脚手架执行核心流程和 通过
commander
完成脚手架的框架搭建和命令注册 - 图解架构设计图 绘图技巧
- 如何让一个
Node
项目支持ES Module
主要内容
- 脚手架需求分析和架构设计
- 脚手架模块拆分策略
- 核心模块
core
技术方案设计 - 实现脚手架执行准备过程
- 基于
commander
实现脚手架命令注册 - 让一个
Node
项目支持ES Module
研发流程
痛点分析
- 创建项目/组件时,存在大量重复代码的拷贝,如何快速复用已有沉淀。
- 协同开发时,由于
git
操作不规范,导致分支混乱,操作耗时,如何制定标准的git
操作规范并集成到脚手架。 - 发布上线耗时,而且容易出现各种错误,如何制定标准的上线流程和规范并集成到脚手架。
需求分析
- 通用的研发脚手架,解决所有痛点。
- 通用的项目/组件创建能力
- 模板支持定制,定制后能够快速生效
- 模板支持快速接入,极低的接入成本
- 通用的项目/组件发布能力
- 发布过程自动完成标准的
git
流程 - 发布成功后自动删除开发分支并创建
tag
- 发布成功后自动完成云构建,
OSS
上传,CDN
上传,域名绑定 - 发布过程支持测试,正式两种环境
- 发布过程自动完成标准的
git 操作规范
绘制架构图
脚手架模块拆分策略
把一个大的项目拆分成多个模块,方便管理和维护。
我们这个脚手架将按照下方计划进行拆分。
- 核心流程 Core
- 命令 Command
- 初始化
- 发布
- 清除缓存
- 模型层 Model
Command
命令Project
项目Component
组件Npm
模块Git
仓库
- 支持模块 Utils
Git
操作- 云构建
- 工具方法
API
请求Git Api
Core 模块技术方案
命令执行流程
- 准备阶段
- 命令注册
- 命令执行
设计技术点
核心库
import-local
commander
工具库
npmlog
: 打印日志fs-extra
: 文件操作semver
: 版本比对colors
:打印不用颜色的文本user-home
: 拿到用户的主目录dotenv
: 获取环境变量root-check
: 检查root
用户,降级