Skip to content

前言

目前的config仓库按照monorepo的方式存放的,里面有完全不同种类的的config包,大部分包的依赖的都是独立的,也有部分公共的包比如typescript和prettier。同时各个仓库的发布阶段都是交给github-action在做CI如何设计。

changeset

changeset生成能够被消耗的changeset描述文件, 开发自行调整描述文件, changeset version消耗描述文件,调整需要发布的包, changeset publish到各个包发布,流程很简单。 按照下面步骤描述下细节

  1. changeset init 初始化changeset配置

  2. changeset add 对当前更改新增描述文件,changeset add 会自动的查找到当前的修改的包,前提是没有commit的情况下

  3. 选择包进入命令式的交互填写,主要写需要更新那些包。通过patch minor 或者major的方式更新包。

  4. changeset version消耗刚才描述文件来对包进行version的更新。

  5. changeset publish 会到各个包下面进行npm publish,这个步骤也可以通过自行publish实现

实战

  1. 本地修改代码,运行changeset add 生成消耗文件,可以不修改文件,强行生成changeset文件。
  2. 正常上传代码,github action 根据存在pub来决定是否打包
  3. github action 运行 changeset version 消耗文件同时修改版本号
  4. 运行pnpm -F "[origin/xx]"... run build 来分别执行相关的包的build
  5. 运行pnpm publish -F "[origin/xxx]" 发布包或者[HEAD]...(当前分支比较)
  6. 使用git add -A git commit -m "" git push 推送包, 也可以通过merge来推送包避免多人修改时的问题