mobile-monorapo 是一个移动端公共部分的集成,包含 mobile-ui,mobile-cards,mobile-tag 和 mobile-axios。
- 在根目录执行 pnpm i。
- 执行 pnpm dependence,因为 monorapo 里的包会互相依赖,所以需要事先安装这些依赖。
启动命令在package.json里都有标注,各项目的启动命令如下:
- mobile-ui:pnpm serve:ui
- mobile-tag:pnpm serve:tag
- mobile-cards:pnpm serve:cards
启动后根据就可以开始调试,包的源代码在packages里面,包的源码改完即可实时预览。
- 切到publish分支,开发环境只支持publish分支发布包,所以要在publish分支合代码,合完不用提交代码。
- 执行pnpm change,选择要发版的包名,空格选中,回车是跳过。
- 执行pnpm rev,会自动更新包的版本号,以及包的子依赖包的版本号。
- 执行发布命令,发布对应的包就执行对应的命令即可:
- mobile-ui:pnpm publish:ui
- mobile-tag:pnpm publish:tag
- mobile-cards:pnpm publish:cards
- 必须要提交publish分支代码,不然其它人发版本的版本号会有问题。
比如 mobile-ui,mobile-cards,mobile-tag 等需要发布到 npm 的组件项目需要按以下规则发版本。
-
所有开发人人员需要执行 npm config set save-exact=true,用来锁定包的版本号。
-
任何一个功能都需要从 master 分支拉出功能分支,功能分支尽量拆得细点,名称以 v 发版日-姓名缩写-功能名称来命名,比如 v1027-lxl-addButton。
-
新建 publish 分支,所有功能想要发版本必须先合到这个分支才能执行 npm run pub 发版,不能在功能分支直接发版本,每次发版本自动会更新次补丁版本号。
-
每次发版由组件维护人从 master 新建名称为 v 发版日分支,然后合需要发布的功能分支,其他人需要提合 v 发版日的 merge request,而不是提合 master 分支的 request,然后在 v 发版日分支发布到 npm,每次发版本需要手动会更新次补丁版本号。上线后,由组件维护人统一将 v 发版日分支合并到 master 分支,并删除已上线的功能分支,留存 v 发版日分支,同时,需要 publish 合下 master 确保 publish 最新。
-
因为组件库发版本的版本号只有X.Y.Z一种,所以各分支发版本可能会导致覆盖或带上新功能问题,所以需要版本标识符做区分。
- alpha:α版本(对应uat),测试用,代表当前可能有很大的变动。
- beta:β版本(对应stg),代表版本已开始稳定,但是还有bug。
- stable:稳定版本(对应gray)。
组件库分也分uat,stg和gray分支,对应项目进行版本发布,组件库的uat对应项目的uat,stg和gray同理,发版的脚本已自动做过处理,在组件库的uat发版会带上0.0.1-alpha,stg会带上0.0.1-beta,gray会带上stable,项目中在各自的发版分支上用对应的版本标识符。