作者: 谭辉
目前Xtils作为公司基础研发库的一个 package 进行管理,并没有独立的仓库。
在仓库目录中,packages/utils
即为Xtils源码目录。
需要为Xtils贡献代码时,请以仓库 dev 分支中packages/utils
目录作为最新源码,进而再此基础上贡献代码。
在Xtils中,src
目录下存放各类函数,tests
目录下存放函数的单元测试用例
javascript
编写,且需要为每个函数单独提供TS 类型声明文件,TS 声明文件需放在 JS 功能函数同一目录下,TS 声明文件名需与 JS 函数文件名一致,如图所示:函数分类
现目前Xtils共有以下几大类函数,分类规则为:以函数处理的数据类型作为划分
函数导出
每一个功能函数皆以默认导出形式进行导出,即:
export default function () {}
// 或者
function example() {}
export default example;
新增的功能函数除了在本身JS
文件中使用默认导出,同时还需要在src/index
下添加一个导出接口。如下图所示:
注意:为了实现函数库按需加载,具名函数导出的名称需与 JS 文件名一致,且文件名须为小驼峰命名规则
注意:由于 xtils 作为产品研发大仓库的一部分,仓库采用的monorepo
方式进行管理,如果在贡献函数功能时需要安装外部依赖库,请安装在 utils 这个 package 下,但由于 xtils 本身作为一个轻量函数库,请尽量减少对第三方库的依赖:
pnpm add xxx -F utils
单元测试所用框架为jest
如果新增功能函数,必须为函数编写单元测试文件,要有足够的覆盖度。如果修改功能函数,也要修改对应的测试用例添加覆盖单元。
单元测试文件中导入的函数需从src/index.js
文件中导入,而不是从函数文件所在位置导出,如下:
// converUnit.test.js
import { convertUnit } from '../src';
在 gitlab 仓库中提交 MergeRequest, 目标分支选择 Dev 分支
在 MR 的信息填写相关信息
如果是为 xtils 新增函数:
如果是为 xtils 修复 bug 或者增强函数: