安装依赖
1
| pnpm add @changesets/changelog-github @changesets/cli -D
|
编写 npm script
1 2 3 4 5
| "scripts": { "init": "changeset init", "change": "changeset", "version": "changeset version" },
|
初始化 changesets
运行该命令后会在根目录生成.changeset
文件
修改 .changeset/config.json
文件
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
| { "$schema": "https://unpkg.com/@changesets/config@2.3.1/schema.json", "changelog": [ "@changesets/changelog-github", { "repo": "camoth/changesets-github-test" } ], "commit": false, "fixed": [], "linked": [], "access": "restricted", "baseBranch": "master", "updateInternalDependencies": "patch", "ignore": [] }
|
提交变更文件
生成版本文件
不出意外的话运行这个命令会报错,所以需要先去 github 生成 TOKEN
然后添加到环境变量里面再运行命名
编辑 ~/.zshrc
添加以下这行
1
| export GITHUB_TOKEN=YOUR_TOKEN
|
或者临时使用
1
| GITHUB_TOKEN=YOUR_TOKEN pnpm changeset version
|
工作流程
- 编写特征代码
- 生成版本描述文件
- 提交代码
- 生成版本文件
拓展
如果是 github 开源项目的话,可以使用 github 的 workflows 来完善整体 CI 流程,以下 action 实现当发生 PR 的时候会自动生成 CHANGELOG
文件
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29
| name: Release
on: push: branches: - main
concurrency: ${{ github.workflow }}-${{ github.ref }}
jobs: release: name: Release runs-on: ubuntu-latest steps: - name: Checkout Repo uses: actions/checkout@v3
- name: Setup Node.js 16 uses: actions/setup-node@v3 with: node-version: 16
- name: Install Dependencies run: yarn
- name: Create Release Pull Request uses: changesets/action@v1 env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
如果是公司内部项目的话,可以不使用@changesets/changelog-github
这个包了
实例仓库
https://github.com/camoth/changesets-github-test