笔记
脚手架核心流程开发——准备阶段
大厂项目流程
设计阶段
- 业务或研发过程中的痛点
 - 需求:
- PD 需求文档(PRD)
- 产品原型图
 - 痛点
 - 做完后希望达成的目标(可量化)
 
 - 技术方案设计:
- 技术方案文档
 - 技术选型
 - 技术架构
 - api定义
 - 技术调研
 - 评估技术风险
 
 
 - PD 需求文档(PRD)
 - 项目立项
- kick-of
- 确立 PO PM (产品负责人,开发团队人员)
 
 
 - kick-of
 - 项目排期
- 计划并确立时间节点
 
 
实施阶段
- 交互视觉设计
 - 开发
 - 测试
 - 验收
 - 上线
 - 结项
- 看是否达到目标
 
 
大厂git规范
分支规范
- master:同步分支 线上代码
 - dev:开发分支: dev 0.0.1 自动升版本
 - release:上线后 添加 tag: release 0.0.1
 
仓库规范
- 原始仓库:代码合并前 code review,合并后无问题提交测试
 - fork 仓库: 存放自己的代码
 - 本地仓库:本地开发,开发完成合并回原始仓库
 
脚手架架构设计
架构设计图:系统设计思路 考虑好外部依赖
痛点分析:
- 创建项目/组件时,存在大量重复代码:快速复用已有沉淀
 - 协同开发时 git 操作不规范,分支混乱,操作耗时:制定标准的git操作规范
 - 发布上线耗时,而且容易出现各种错误:制定标准的上线流程
 
需求分析:
- 通用的研发脚手架
 - 通用的项目/组件创建能力
- 模板支持定制,定制后能够快速生效
 - 模板支持快速接入,极低的接入成本
 
 - 通用的项目/组件发布能力
- 发布过程自动完成标准的 git 操作
 - 发布完成后自动删除开发分支,并创建tag
 - 发布后自动完成云构建、oss上传、cdn上传、域名绑定
 - 发布过程支持测试/正式两种模式
 
 
架构图体系
项目初始化体系
- 项目初始化
- 组件初始化
 - 初始化模式
 
 - 项目发布体系
- 项目发布
 - 组件发布
 - 发布模式
 
 - 标准git操作体系
- 仓库创建
 - 开发模式
 - 发布模式
 
 - 核心框架(初始化,完成执行流程,完成命令执行,完成异常监听)
- 执行准备
 - 命令注册
 - 命令执行
 
 - OPEN API
- 项目/组件模板
 - 静态资源查询
 - 配置信息
 
 - WebSocket 服务
- 云构建
 - 云发布
 - 发布模式
 
 
外部依赖
- 代码仓库
 - 资源体系
 - 远程缓存体系
 - 本地缓存体系
 - 模板库
 - 数据体系
 
代码实现思路
脚手架拆包策略
- 核心流程:core
 - 命令:commands
- 初始化
 - 发布
 - 清缓存
 
 - 模型层:models
- 命令
 - 项目
 - 组件
 - npm
 - git 仓库
 
 - 支撑模块:utils
- git 操作
 - 云构建
 - 工具方法
 - API 请求
 - git API
 
 
core模块技术方案
准备阶段
- 检查版本号
- 检查node版本
 - 检查root启动
 - 检查用户主目录
 - 检查入参
 - 检查环境变量
 - 检查是否最新版本
 - 命令注册
 - 命令执行
 
 
核心库
1. import-local 
1. commander 脚手架框架
工具库
1. npmlog 控制台输出
1. fs-extra 检查文件是否存在
1. semver 比较版本号
1. colors log信息添加颜色
1. user-home 操作系统用户主目录
1. dotenv 从文件加载环境变量
1. root-check root用户降级