Перейти до основного змісту
Версія: 11.x

Використання Changesets з pnpm

нотатка

На момент написання цієї документації остання версія pnpm була v10.4.1. Остання версія Changesets була v2.28.0.

Встановлення

Щоб встановити changesets у робочому просторі pnpm, встановіть changesets як залежність dev у корені робочого простору:

pnpm add -Dw @changesets/cli

Потім запустіть команду changeset init, щоб згенерувати конфігурацію changeset:

pnpm changeset init

Додавання нових наборів змін

To generate a new changeset, run pnpm changeset in the root of the repository. The generated markdown files in the .changeset directory should be committed to the repository.

Випуск змін

  1. Run pnpm changeset version. This will bump the versions of the packages previously specified with pnpm changeset (and any dependents of those) and update the changelog files.
  2. Run pnpm install. Це оновить файл блокування і перезбере пакунки.
  3. Зафіксуйте зміни.
  4. Run pnpm publish -r. This command will publish all packages that have bumped versions not yet present in the registry.

Інтеграція з GitHub Actions

To automate the process, you can use changeset version with GitHub actions. The action will detect when changeset files arrive in the main branch, and then open a new PR listing all the packages with bumped versions. PR автоматично оновлюватиметься щоразу, коли до main надходитиме новий файл набору змін. Після обʼєднання пакунки буде оновлено, і якщо для дії було вказано publish, їх буде опубліковано за допомогою цієї команди.

Додайте скрипт publish

Додайте новий скрипт з назвою ci:publish, який виконує pnpm publish -r. Він буде публікувати в реєстрі після того, як буде злитий PR, створений за допомогою changeset version. Якщо пакунок є публічним з вказаною областю дії, додавання --access=public може бути потрібним для запобігання того, що npm відхиляє публікацію.

package.json

{
"scripts": {
"ci:publish": "pnpm publish -r"
},
...
}

Додайте workflow

Додайте новий робочий процес за адресою .github/workflows/changesets.yml. Цей робочий процес створить нову гілку і PR, тому в налаштуваннях репозиторію слід надати Actions права читання і запису (github.com/<repo-owner>/<repo-name>/settings/actions). Якщо на кроці publish включено вхідні дані changesets/action, репозиторій також має містити маркер авторизації для npm як секрет репозиторію з іменем NPM_TOKEN.

.github/workflows/changesets.yml

name: Changesets

on:
push:
branches:
- main

env:
CI: true

jobs:
version:
timeout-minutes: 15
runs-on: ubuntu-latest
steps:
- name: Checkout code repository
uses: actions/checkout@v4

- name: Setup pnpm
uses: pnpm/action-setup@v4

- name: Setup node.js
uses: actions/setup-node@v4
with:
node-version: 20
cache: 'pnpm'

- name: Install dependencies
run: pnpm install

- name: Create and publish versions
uses: changesets/action@v1
with:
commit: "chore: update versions"
title: "chore: update versions"
publish: pnpm ci:publish
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
NPM_TOKEN: ${{ secrets.NPM_TOKEN }}

Більше інформації та документації щодо цієї дії changesets можна знайти тут.