跳至主要內容
版本:7.x

搭配 pnpm 使用 Changesets

注意事項

在撰寫本文件時,最新的 pnpm 版本為 v6.14。 最新的 Changesets 版本為 2.16.0 版。

安装

要在 pnpm workspace 上設置 changesets ,請將 changesets 作為開發依賴項 安裝在 workspace 的根目錄中:

pnpm add -Dw @changesets/cli

然後是 changesets 的初始化指令:

pnpm changeset init

添加新的 changesets

要生成新的 changesets,請在 workspace 的根目錄下運行 pnpm changesets 。 在 .changeset 目錄中生成的 markdown 文件應被 提交到 repository。

發布變更

  1. 執行 pnpm changeset version. 這將提高先前使用 pnpm changeset 的套件(以及它們的任何依賴項)的版本,並更新變更日誌(changelog) 文件。
  2. 執行 pnpm install。 這將會更新 lockfile 及重新打包套件。
  3. 提交更改
  4. 執行 pnpm publish -r。 此命令將發布所有包含被更新版本且尚未出現在註冊源中的套件。

使用 GitHub Actions

若要自動化這個流程,您可以將 changeset version 與 GitHub Actions 搭配使用。

提升版本號

當檢測到 changeset 文件被合併到 main 分支時,該 action 將創建一個新的 PR,列出所有應該變更版本號的套件。 合併後,包將被更新,您可以通過添加 publish 屬性來決定是否發布。

發佈

Add a new script ci:publish which executes pnpm publish -r. It will publish to the registry once the PR is opened by 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 }}

有關此操作的更多資訊和文檔可以在這裡找到。