跳到主内容
版本:10.x

在 pnpm 中使用 Changesets

注意

在编写本文档时,最新的 pnpm 版本为 v6.14。 最新的 changesets 版本是 v2.16.0。

配置

要在 pnpm 工作空间上配置 changesets,请将 changesets 作为开发依赖项安装在工作空间的根目录中:

pnpm add -Dw @changesets/cli

然后 changesets 的初始化命令:

pnpm changeset init

添加新的 changesets

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

发布变更

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

使用 GitHub Actions

要自动执行此过程,你可以将 changeset version 与 GitHub actions 一起使用。

变更版本号

当检测到 changeset 文件被合并到 main 分支时,该 action 将创建一个新的 PR,列出所有应该变更版本号的包。 合并后,包将被更新,你可以通过添加 publish 属性来决定是否发布。

发布

添加一个新的脚本 ci:publish,执行 pnpm publish -r。 一旦 PR 被 changeset version 打开,包就会发布到注册表中。

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 }}

关于此操作的更多信息和文档可以在 这里 找到。