--- hero: title: lambo description: 致力于提升前端开发效率与规范(开发前请先阅读开发流程) actions: - text: 快速上手 link: /bizs # features: # - title: biz # emoji: 🍑 # description: 业务库 # - title: hooks # emoji: 💎 # description: hooks # - title: func # emoji: 🌈 # description: 常用函数库 # - title: meta # emoji: ☀️ # description: 原子组件库 # - title: constants # emoji: 🈶️ # description: 静态定义库 # - title: request # emoji: 🥣 # description: 网络请求库 # - title: types # emoji: 🈸 # description: typescript 声明库 # - title: material # emoji: 🥱 # description: 物料库 # - title: cli # emoji: 🐔 # description: 脚手架 --- ## 开发流程 ### 1. 确定需求 从 gitlab 上的 [issue](http://10.0.0.88/web-project/zhst-lambo/boards) 模块找到对应的需求。将 Assignee 负责人指派为自己(如果多人协同开发可以将需求拆分为多个需求,分别指派),然后将 Labels 标签改为 doing 状态。(截止日期选填) > issuse 命名规则:@zhst/{包名} - {模块名},然后在详情页描述对应需求。 ### 2. 创建 git 分支 按照 git flow 规范从 [master](http://10.0.0.88/web-project/zhst-lambo) 上创建分支, 分支的命名规则参考: 1. feat/XXX: 需求新增 2. 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](http://10.0.0.88/web-project/zhst-lambo/boards) 对应的 Labels 状态改为 waittingPublish。 ### 5. 发布成功 发布成功之后,会有两个行为: 1. 在钉钉群通知发布成功。 2. 生成线上预览[说明文档](http://10.0.0.204:30080) 一旦触发了钉钉通知,则需要去到 [issue](http://10.0.0.88/web-project/zhst-lambo/boards) 板块将对应的需求 **close** 掉。 这就是 npm 包整个开发链路。 ## 目录结构 ## 本文档食用说明 目前在进行中的项目为:@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+ 思维 :::