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.