# acud-pro
一套基于acud的适用于私有化项目的企业级UI组件库和React实现。

包括通用组件（common components）、业务组件（biz components）、高阶组件(HOC components）和工具集（utils）。


## 特性
- 简单快速：对于各种经典业务场景的开发，支持通过“配置化”来实现。
- 技术领先：全部使用TypeScript构建，提供完整的类型定义文件（*.d.ts），让开发者解决问题于开发阶段。
- 文档齐全：配有文档 + 使用Demo + 培训视频助开发者更聚焦于业务开发。
- 全链路开发、测试、发布技术体系

  1、使用docusaurus来搭建demo和文档平台，并能支持开发过程中的调试。

  2、基于Jest的自动化测试功能，覆盖100%工具类和80%组件。

  3、应用eslint来进行代码风格检验。

  4、基于rollup来实现编译打包功能，产出es和commonjs两份产出。

  5、当前组件使用Hooks写法来实现

## 技术方案
react全家桶 + docusaurus + typescript + eslint + rollup + antd + jest + less

## 如何使用
```
npm install --save acud-pro
```

## 如何开发
```

# lint
pnpm run lint

# commit
pnpm run cm

# build
pnpm run build

# release
pnpm run release

# deploy
pnpm run deploy

# test
pnpm run test

# update test
pnpm test -- -u

```

## 组件支持国际化开发
1. src/components/locale/index.tsx下补充对应组件国际化文案类型
2. src/compontents/locale对应翻译文档补充国际化文案
3. 组件内部调用useLocale获取对应国际化文案

## 正式版本发布

``` bash
# 更新代码和tags到本地，`CHANGELOG.md`会根据上个发版tag的内容进行 增量log日志生成
git pull

# 将最新修改后的代码提交到master分支
git push origin HEAD:refs/for/master

# 更新 `package.json`和`CHANGELOG.md` ，推荐使用major（主版本）、minor（次版本）、patch（补丁版本）
pnpm run release [major|minor|patch|自定义tag版本]

# 发版npm镜像
pnpm run deploy 

# 推送代码和tags到代码库，注意tags要记得推送，不然可能会导致他人发版的CHANGELOG.md 会出现旧的内容日志
git push origin HEAD:refs/for/master
git push --tags 
```

## beta版本发布
``` bash
# 更新代码和tags到本地，`CHANGELOG.md`会根据上个发版tag的内容进行 增量log日志生成
git pull

# 将最新修改后的代码提交到feature分支
git push origin HEAD:refs/for/feat/xxx

# 更新 `package.json`和`CHANGELOG.md` ，推荐使用major（主版本）、minor（次版本）、patch（补丁版本）
pnpm run release [major|minor|patch|自定义tag版本] --preRelease=beta

# 发版npm镜像
pnpm run deploy --tag beta

# 推送代码和tags到代码库，注意tags要记得推送，不然可能会导致他人发版的CHANGELOG.md 会出现旧的内容日志
git push origin HEAD:refs/for/feat/xxx
git push --tags 
```