Passa al contenuto principale
Versione: 7.x

Utilizzo di Changesets con pnpm

note

Al momento della stesura di questa documentazione, l'ultima versione di pnpm era la v6.14. L'ultima versione di Changesets è stata la v2.16.0.

Configurazione

Per configurare i changeset su uno spazio di lavoro pnpm, installa Changesets come dipendenza di svuluppo nella radice dello spazio di lavoro:

pnpm add -Dw @changesets/cli

Quindi esegui il comando init di changesets:

pnpm changeset init

Aggiunta di nuove modifiche

Per generare un nuovo changeset, esegui pnpm changeset nella radice del repository. I file markdown generati nella directory .changeset dovrebbero essere aggiunti al repository.

Rilascio delle modifiche

  1. Esegui pnpm changeset versione. Ciò aumenterà le versioni dei pacchetti precedentemente specificati con pnpm changeset (e tutti i dipendenti di questi) e aggiornerà i file del registro delle modifiche.
  2. Esegui pmnpm install. Questo aggiornerà il file di blocco e ricostruirà i pacchetti.
  3. Effettua un commit delle modifiche.
  4. Esegui pnpm publish -r. Questo comando pubblicherà tutti i pacchetti che hanno versioni incrementate non ancora presenti nel registro.

Utilizzo di Github Actions

Per automatizzare il processo, puoi utilizzare changeset version con GitHub Actions.

Aumenta le versioni del pacchetto

L'azione rileverà quando i file di changeset arrivano nel ramo main, e aprirà una nuova PR che elenca tutti i pacchetti con versioni incrementate. Una volta unita, i pacchetti verranno aggiornati e potrai decidere se pubblicare o meno aggiungendo la proprietà publish.

Pubblicazione

Aggiungi un nuovo script ci:publish che esegue pnpm publish -r. Verrà pubblicato nel registro una volta aperta la PR da 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 }}

Maggiori informazioni e documentazione su questa azione sono disponibili qui.