5.5 KiB
hero | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
|
开发流程
1. 确定需求
从 gitlab 上的 issue 模块找到对应的需求。将 Assignee 负责人指派为自己(如果多人协同开发可以将需求拆分为多个需求,分别指派),然后将 Labels 标签改为 doing 状态。(截止日期选填)
issuse 命名规则:@zhst/{包名} - {模块名},然后在详情页描述对应需求。
2. 创建 git 分支
按照 git flow 规范从 master 上创建分支, 分支的命名规则参考:
- feat/XXX: 需求新增
- hotfix/XXX: bug 修复
3. 开始开发
进入项目文件夹,在 packages 下找到对应的 npm 包, 然后在 src 目录下按已有的格式进行开发,如果是功能变更就找到对应的页面进行修改
4. 提交代码,并提交 mr 到 develop 分支
完成开发后,给代码提交 commit,格式参考 ${行为}(${影响范围}): ${变更内容}, 例如:
feat(package.json): 修改版本号 fix(app.ts): 修改环境变量
对应的变更会在最终的 npm 包版本号体现:a.b.c - a 对应重构(一般用不上) - b 对应 feat(功能新增) - c 对应 hotfix(一般是 bug 修复)
push 完代码之后,在 gitlab 上提交一个 mr 到 develop 分支,指定给对应的人员审核(@江志雄),合并成功之后,将 issue 对应的 Labels 状态改为 waittingPublish。
5. 发布成功
发布成功之后,会有两个行为:
- 在钉钉群通知发布成功。
- 生成线上预览说明文档
一旦触发了钉钉通知,则需要去到 issue 板块将对应的需求 close 掉。
这就是 npm 包整个开发链路。
目录结构
-
docs
全局文档
- index.md 这是首页文档
-
packages
组件包目录
- biz 业务组件
- func 函数库
- hooks hooks
- constants 静态枚举值定义
- meta 元组件
- request 请求库
- types 类型定义库
- material 物料库
- cli 脚手架
-
src
这是 src 文件夹
- index.md 这是 index.md
- .dumirc.ts 文档配置
- package.json 这是 package.json
本文档食用说明
目前在进行中的项目为:@zhst/bizs、@zhst/hooks、@zhst/meta、@zhst/func..
bizs: 基于@zhst/hooks、@zhst/meta、@zhst/func 开发,基本贴近于业务。doing
meta:基于 antd 开发,作为公司的定制化原子组件。doing
hooks:基于 ahooks、@zhst/func 定制化二次开发。doing
func:基于 lodash-es 定制化二次开发 (由于 utils 包名被使用了)doing
后续构思
想做一个,基于智慧视通开发场景和业务场景的前端技术流程化方案,希望它能渗透到整个研发的所有流程中。
比如:代码规范、git 提交规范、物料库、基于 electron 的前端工具客户端(可集成物料库、图片上传小工具)、api 自动生成...
:::info{title=@zhst/lint} lint 工具库,包含:eslint-config、eslint-plugin、commit-lint :::
:::info{title=@zhst/metarial} 物料库,可以直接通过 clone npm 仓库的形式生成模板页面,页面没有任何依赖,一个页面就是一个项目。 :::
:::info{title=@zhst/app} 基于 electron 的前端客户端工具,初期功能构思方案有:文件上传、git 仓库管理、物料库可视化页面一键生成 :::
:::info{title=@zhst/autoapi} 接口一键生成工具 :::
:::info{title=@types/zhst} 类型定义库 :::
:::info{title=@zhst/constants} 静态变量枚举库 :::
:::info{title=@zhst/cli} 基于物料库的脚手架,可以直接通过可视化界面搭建项目,偏向于 lowcode+ 思维 :::