## 如何开发 #### 1. 项目使用 lerna 管理,所有的大包在 `/packages`,所有的自定义组件包在 `/widgets` #### 2. 如何跑起来(以下操作全在根目录) ```sh # 安装依赖,请使用yarn,会去重的安装所有 node_modules (注意安装必须用 yarn,其他命令无所谓) yarn # 首次开发需要 build 一下,否则有些仓库的 import 在 dumi 里会找不到 yarn build # 将文档网站跑起来 yarn start ``` #### 3. 进入文档网站了,如何开发呢? - 例如要开发 form-render 在 /docs/form-render/guide 目录下写一个 test.md 文件, 参考 /docs/form-render/guide/new-feature.md 的写法即可。发布前把 test.md 干掉,或者放到不会被展示的文件目录下 - 提交前注意必须**格式化**。提交前注意必须**格式化**。提交前注意必须**格式化**。请安装 prettier 插件,或者在提交前执行 ```sh yarn format ``` #### 4. 重新安装依赖 ```sh # 先清空 yarn clean # 再安装 yarn ``` 注意 lerna clean 不会清除顶层的 node_modules,所以如果因为特殊原因要彻底清空依赖,请执行 `rm -rf node_modules` #### 5. 发布 此操作只针对有 npm 发布权限的贡献,进入相应项目的文件夹,例如 form-render,执行 publish ```sh # 进入 cd packages/form-render # 换版本号、打tag。注意tag要打,便于release note的维护 yarn version --new-version 1.1.0 # 发布 npm publish ``` 发布后记得到 [releases 页](https://github.com/alibaba/x-render/releases/) 补上最新发布日志 #### 6. 实际装包测试(本地 or 发布 beta 版本) - 本地测试 推荐一下 yalc。是一个完全可以当做 yarn 来使用,但是发包和装包都在本地的工具,个人调试强烈推荐 - 发 beta 包 beta 版本的版本号规范为 x.x.x-beta.x,一般用于大功能上线前的真实测试,不会被正常 npm i 安装。 进入 package/form-render 文件夹,执行 ```sh # 换版本号、打tag。注意tag要打,便于release note的维护 yarn version --new-version 1.1.0-beta.0 # 发布 npm run beta ``` #### 7. 分支管理 外部同学请 fork,内部同学请在 dev 分支开发,然后都发 pull-request 到 master 分支,由负责同学审核后合并,master 分支请勿人为去动 #### 8. 如何检验一个 pull request ``` # ID 为 pr 的 id git fetch origin pull/ID/head && git checkout FETCH_HEAD ``` #### 9. 编辑文档 编辑文档请参考 [文档规范](https://github.com/alibaba/x-render/wiki/%E6%96%87%E6%A1%A3%E8%A7%84%E8%8C%83)