@@ -7,84 +7,82 @@ group: 研发
77
88### 几点规范
99
10- - 组件 API 变量命名规范,尽量采用驼峰式、可语义化的变量名
11- - 组件内部 CSS 命名规范,在采用 [ BEM] ( https://dtstack.yuque.com/rd-center/sm6war/clgpb7 ) 规范的基础上,使用 dt-react-component 标识性前缀 ** dtc-**
10+ - 命名规范:组件的名称应该使用大驼峰命名法,且尽量使用有意义的名字,并且应该与文件名相同。
11+ - 文件组织规范:组件应该被放置在 src 目录中,每个组件应该有自己的文件夹,并使用 index.js 文件作为入口。
12+ - 类型规范:所有的变量和函数都应该有明确的类型声明,特别是对于需要传递给子组件的 props 和组件状态 state 的类型。
13+ - 测试规范:编写测试代码是开发组件的必要步骤。使用 Jest 和 @testing-library/react 进行组件测试,确保组件的质量和可靠性。
14+ - CSS 命名规范:在采用 [ BEM] ( https://dtstack.yuque.com/rd-center/sm6war/clgpb7 ) 规范的基础上,使用 dt-react-component 标识性前缀 ` dtc- ` 。
15+ - 组件化开发思维:React 的核心概念就是组件化开发思想,因此在开发过程中要遵循这个原则。将代码拆分成小的可重用组件,并尽可能减少代码的重复性。
16+ - 文档规范:遵循简洁、易用的原则,开发对应的文档示例,确保每个示例不会耦合太多的 API。
1217
1318** 如有其他问题后续可以补充**
1419
1520### 目录结构
1621
1722``` plain
1823dt-react-component
19- ├── CHANGELOG.md
20- ├── README.md
21- ├── commitlint.config.js
22- ├── jest.config.js
23- ├── lib // 编译输出文件
24- ├── package-lock.json
25- ├── package.json
26- ├── scripts // 脚本文件
27- │ └── release.sh
28- ├── setupTests.js
29- ├── .storybook // storybook 配置文件夹
30- ├── src
31- │ ├── components // 组件文件夹
32- │ │ ├── circle
33- │ │ ├── goBack
34- │ │ ├── index.tsx
35- │ │ ├── slidePane
36- │ │ └── utils // 组件内部引用的工具类文件
37- │ ├── stories // 组件文档文件夹
38- │ │ ├── circle.stories.tsx
39- │ │ ├── components
40- │ │ ├── func
41- │ │ ├── goBack.stories.tsx
42- │ │ ├── index.stories.tsx
43- │ │ ├── slidePane.stories.tsx
44- │ │ ├── style // 文档样式
45- │ └── styles // 组件总样式
46- │ └── index.scss
47- ├── storybook-static // 输出静态资源
48- ├── storyshots.test.js
49- ├── tsconfig.build.json // tsc 编译配置
50- └── tsconfig.json
24+ ├─.dumirc.ts --> dumi 的配置文件
25+ ├─.editorconfig --> 编辑器配置文件,可以约定项目中使用的代码风格、缩进等等规则
26+ ├─.eslintrc.js
27+ ├─.fatherrc.ts --> father-build 的配置文件
28+ ├─.prettierignore
29+ ├─.prettierrc.js
30+ ├─.stylelintignore
31+ ├─.stylelintrc
32+ ├─CHANGELOG.md
33+ ├─LICENSE
34+ ├─README-zh_CN.md
35+ ├─README.md
36+ ├─jest.config.js --> jest配置文件
37+ ├─package.json
38+ ├─pnpm-lock.yaml
39+ ├─tsconfig.json --> TypeScript 的配置文件
40+ ├─tests --> jest配置相关的文件
41+ | ├─fileTransformer.js
42+ | ├─setupTests.js
43+ | └styleMock.js
44+ ├─src --> 组件源码
45+ | ├─index.ts --> 组件主入口
46+ | ├─utils
47+ | | ├─antdProps.ts --> antd的一些props
48+ | | ├─copy.tsx --> Copy工具类
49+ | | ├─index.ts --> 公共方法主入口
50+ | | ├─interface.ts --> 公共的类型定义
51+ | | └__tests__
52+ | ├─useList --> 单个组件目录
53+ | | ├─index.md --> 组件说明文档
54+ | | ├─index.ts --> 单个组件的源码
55+ | | ├─demos --> 不同场景的示例
56+ | | └__tests__ --> 单元测试
57+ ├─docs --> 文档目录
58+ | ├─index.md
59+ | ├─guide
60+ | | ├─CONTRIBUTING.md --> 贡献指南
61+ | | ├─componentDev.md --> 组件开发
62+ | | ├─index.md --> 快速上手
63+ | | └updateLog.md --> 更新日志
64+ └.dumi --> dumi的配置文件
5165
5266```
5367
5468### 开发流程
5569
56- 在基于规范基础上开始组件开发,src 文件夹是我们开发中最关心的文件
57- 主要步骤大致如下:
70+ 在你 clone 了 dt-react-component 的代码并且使用 pnpm install 安装完依赖后,你还可以运行下面几个常用的命令:
5871
59- - src/components 业务组件逻辑、组件样式、测试文件编写等
60- - src/components/组件名/style.scss ** 便于 css 按需支持,组件内部样式统一名称为 style.scss**
61- - src/stories 组件文档介绍以及动态演示效果编写
62- - src/styles 将组件样式文件统一引入,便于统一编译样式文件
63-
64- ** 注意点:** 组件内部如需要引用图片资源,目前采用 ** base64** 编码后引用
65-
66- ### 组件编译
67-
68- ``` plain
69- npm run compile
70- 输出 lib 文件夹
71- ```
72+ - ` pnpm dev ` 使用 Dumi 工具启动项目的开发模式
73+ - ` pnpm build ` 使用 Father 打包项目
74+ - ` pnpm docs:build ` 使用 Dumi 构建生成文档网站
75+ - ` pnpm lint ` 检查代码风格
76+ - ` pnpm prepublishOnly ` 在发布前运行 father doctor 检查项目配置,并运行 npm run build 进行打包
77+ - ` pnpm deploy ` 先执行 npm run docs: build 构建文档网站,再使用 gh-pages 将构建后的文档部署到 GitHub Pages 上
7278
7379### 组件可用性、稳定性测试
7480
75- 在 publish npm 或者私有仓库之前 ,进行几个增加组件正确性的测试
81+ 在 publish 仓库之前 ,进行几个增加组件正确性的测试
7682
77- - npm link,本地项目测试效果
78- - npm run test
83+ - ` pnpm link`
84+ - ` pnpm test`
7985
8086### Tag 以及 CHANGELOG
8187
82- ``` plain
83- npm run release
84- ```
85-
86- 参考[ 版本管理] ( https://dtstack.yuque.com/rd-center/sm6war/cmdl2z )
87-
88- ### 组件发布
89-
90- 具体可参考[ 语雀链接] ( https://dtstack.yuque.com/rd-center/sm6war/ntmwtb )
88+ - ` pnpm release `
0 commit comments