TGU 库使用
日常工作中常用的库
使用
-
安装依赖
npm install
-
新建开发分支 - 参见下面的分支规范
从master切出一个新分支进行开发,小功能就在本地发开测试完成之后再进行合并操作,大功能可以把分支push到远程,避免远程分支过多而产生干扰
-
新建一个包
lerna create PackageName(自定义的包名)
-
命令交互
- 为了跟不跟其他的包名冲突,在前面加上组织名字
@tgu/PackageName
- 然后接下来就可以自定义了version/description等信息了。一般为了简单,都一路回车到底
- 为了跟不跟其他的包名冲突,在前面加上组织名字
-
修改入口文件
手动创建 src/index.ts,构建工具会找到每个包下的src/index.ts作为打包/编译入口文件
-
单例测试文件
测试使用jest+enzyme+enzyme-adapter-react-16来实现,也要用typescript编写
npm run test
执行测试 -
编写使用文档
使用docz来做一个文档,在lib/目录下,新建一个xxx.md文件,具体用法参照docz官方文档
npm run docz
打开接口文档地址 -
发布包
npm run publish
-
打包接口文档
npm run docz:build
注意事项
- 发布前需要build
项目结构
├── coverage jest 单测覆盖报告
├── node_modules 依赖包
├── packages monorepo包集合
│ ├── __tests__ 单元测试用例
│ ├── lib 打包输出目录
│ ├── src 源代码
│ ├── types typescript声明文件
│ ├── package.json 包配置文件
│ ├── README.md 包描述文件
├── plugin 为了开发项目方便,自己开发的rollup插件
├── types monorepo各个包的typescritp声明文件
├── .babelrc babel 配置
├── .commitlintrc.js 代码提交规范
├── .editorconfig 编辑器配置
├── .eslintignore eslint忽略文件
├── .eslintrc.js eslint配置
├── .gitignore 忽略提交到git目录文件
├── .npmignore 忽略提交到npm文件
├── .npmrc npm配置
├── .prettierrc 代码美化
├── index.d.ts 全局types声明文件
├── jest.config.js jest配置文件
├── lerna.json lerna 配置文件
├── package.json 依赖包及配置信息文件
├── README.md 描述文件
├── rollup.config.js rollup配置文件
├── tsconfig.json typescript 配置
分支规范
- feat:新功能(feature)
- fix:修补bug
- docs:文档(documentation)
- style: 格式(不影响代码运行的变动)
- refactor:重构(即不是新增功能,也不是修改bug的代码变动)
- test:增加测试
- chore:构建过程或辅助工具的变动
lerna 常用指令使用说明
-
创建包 lerna create [packageName] [scope] (包名,空间)
-
发布包 lerna publish
- 发布自上次发布以来有更新的包 lerna publish
- 显示发布当前提交中标记的包 lerna publish from-git
- 显示发布npm registry中不存在的最新版本的包 lerna publish from-package
-
初始化一个lerna项目 lerna init [----independent] (独立模式)
-
导入存在的包 lerna import (lerna import ~/component --dest=hooks 把路径为component的包导入到名为hooks的包里)
-
将本地或者远程的包作为依赖项添加到当前的packages中 lerna add [packageName] --scope=[modules] [--dev] 把远程依赖[packageName]到[modules]的[开发]依赖库中
-
删除包下的node_modules目录 lerna clean [--scope=packageName] 删除[packageName]下的node_modules依赖
-
列出所有的公开包(排除private=true) lerna ls
-
检查包更新 lerna changed
-
查看包的diff变化 lerna diff
-
在包含该脚本命令的每个package内部执行npm script脚本命令,也可以指定在某个package下执行 lerna run [instruction] [--scope=packageName]
-
对每个包执行任意的命令 lerna exec
-
版本迭代 lerna version
commit 提交约定
提交 commit 的时候必须要说明提交的类型和具体涉及
git commit -m 'feat: 描述'
- build : 改变了 build 工具 如 webpack
- ci : 持续集成新增
- chore : 构建过程或辅助工具的变动
- feat : 新功能
- docs : 文档改变
- fix : 修复 bug
- perf : 性能优化
- refactor : 某个已有功能重构
- revert : 撤销上一次的 commit
- style : 代码格式改变
- test : 增加测试
- anno: 增加注释
- debug: 调试用
包介绍
详见各个包的的readme.md