跳至主要内容
版本: 9.x

使用 Changesets 与 pnpm

注意

在撰写本文档时,最新版本的 pnpm 为 v6.14。最新版本的 Changesets 为 v2.16.0。

设置

要在 pnpm 工作区上设置 changesets,请将 changesets 作为开发依赖项安装到工作区的根目录中

pnpm add -Dw @changesets/cli

然后是 changesets 的 init 命令

pnpm changeset init

添加新的 changesets

要生成新的 changeset,请在存储库的根目录中运行 pnpm changeset。生成的 .changeset 目录中的 markdown 文件应提交到存储库。

发布更改

  1. 运行 pnpm changeset version。这将提升之前使用 pnpm changeset 指定的包的版本(以及这些包的任何依赖项),并更新变更日志文件。
  2. 运行 pnpm install。这将更新 lockfile 并重建包。
  3. 提交更改。
  4. 运行 pnpm publish -r。此命令将发布所有版本已提升但尚未出现在注册表中的包。

使用 GitHub Actions

要自动化此过程,您可以将 changeset version 与 GitHub Actions 结合使用。

提升包版本

该操作将检测 changeset 文件何时到达 main 分支,然后打开一个新的 PR,列出所有版本已提升的包。合并后,这些包将被更新,您可以通过添加 publish 属性来决定是否发布。

发布

添加一个新的脚本 ci:publish,它执行 pnpm publish -r。它将在 changeset version 打开 PR 后发布到注册表。

package.json

{
"scripts": {
"ci:publish": "pnpm publish -r"
},
...
}
name: Changesets
on:
push:
branches:
- main
env:
CI: true
PNPM_CACHE_FOLDER: .pnpm-store
jobs:
version:
timeout-minutes: 15
runs-on: ubuntu-latest
steps:
- name: checkout code repository
uses: actions/checkout@v3
with:
fetch-depth: 0
- name: setup node.js
uses: actions/setup-node@v3
with:
node-version: 14
- name: install pnpm
run: npm i pnpm@latest -g
- name: Setup npmrc
run: echo "//registry.npmjs.org/:_authToken=${{ secrets.NPM_TOKEN }}" > .npmrc
- name: setup pnpm config
run: pnpm config set store-dir $PNPM_CACHE_FOLDER
- name: install dependencies
run: pnpm install
- name: create and publish versions
uses: changesets/action@v1
with:
version: pnpm ci:version
commit: "chore: update versions"
title: "chore: update versions"
publish: pnpm ci:publish
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

有关此操作的更多信息和文档,请访问 此处