Utilizzo di Changesets con pnpm
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
- Esegui
pnpm changeset versione
. Ciò aumenterà le versioni dei pacchetti precedentemente specificati conpnpm changeset
(e tutti i dipendenti di questi) e aggiornerà i file del registro delle modifiche. - Esegui
pmnpm install
. Questo aggiornerà il file di blocco e ricostruirà i pacchetti. - Effettua un commit delle modifiche.
- 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.