Passa al contenuto principale
Versione: Prossimo

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.