Appearance
前言
目前的config仓库按照monorepo的方式存放的,里面有完全不同种类的的config包,大部分包的依赖的都是独立的,也有部分公共的包比如typescript和prettier。同时各个仓库的发布阶段都是交给github-action在做CI如何设计。
changeset
changeset生成能够被消耗的changeset描述文件, 开发自行调整描述文件, changeset version消耗描述文件,调整需要发布的包, changeset publish到各个包发布,流程很简单。 按照下面步骤描述下细节
changeset init 初始化changeset配置
changeset add 对当前更改新增描述文件,changeset add 会自动的查找到当前的修改的包,前提是没有commit的情况下
选择包进入命令式的交互填写,主要写需要更新那些包。通过patch minor 或者major的方式更新包。
changeset version消耗刚才描述文件来对包进行version的更新。
changeset publish 会到各个包下面进行npm publish,这个步骤也可以通过自行publish实现
实战
- 本地修改代码,运行changeset add 生成消耗文件,可以不修改文件,强行生成changeset文件。
- 正常上传代码,github action 根据存在pub来决定是否打包
- github action 运行 changeset version 消耗文件同时修改版本号
- 运行pnpm -F "[origin/xx]"... run build 来分别执行相关的包的build
- 运行pnpm publish -F "[origin/xxx]" 发布包或者[HEAD]...(当前分支比较)
- 使用
git add -Agit commit -m "" git push 推送包, 也可以通过merge来推送包避免多人修改时的问题
