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

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

нотатка

На момент написання цієї документації останньою версією pnpm була v6.14. Остання версія Changesets була v2.16.0.

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

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

pnpm add -Dw @changesets/cli

Потім виконайте команду changesets init:

pnpm changeset init

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

Щоб згенерувати новий набір змін, виконайте pnpm changeset у корені сховища. Згенеровані файли markdown в теці .changeset слід зафіксувати в репозиторії.

Випуск змін

  1. Виконайте pnpm changeset version. Це призведе до зміни версій пакунків, раніше вказаних за допомогою pnpm changeset (і будь-яких залежних від них), а також оновить файли журналу змін.
  2. Виконайте pnpm install. Це оновить файл блокування і перезбере пакунки.
  3. Зафіксуйте зміни.
  4. Виконайте pnpm publish -r. Ця команда опублікує всі пакунки, які мають версії, яких ще немає в реєстрі.

Використання GitHub Actions

Для автоматизації процесу ви можете використовувати changeset version з GitHub actions.

Підвищення версій пакунків

Дія визначить, коли файли набору змін надійдуть до гілки main, а потім відкриє новий 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 }}

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