Plugin: publisher-npm
Veröffentlicht JavaScript- und TypeScript-Pakete in der npm-Registry (oder einer kompatiblen Registry), nachdem semrel die Version aktualisiert hat. Erkennt automatisch pnpm, Yarn Berry, Yarn Classic oder npm anhand der vorhandenen Lockfiles.
Installation
Abschnitt betitelt „Installation“Binärdatei
Abschnitt betitelt „Binärdatei“semrel plugin install @semrel/publisher-npmsemrel plugin install lädt die Binärdatei nach .semrel/plugins/ herunter und aktualisiert .semrel.lock. Committe .semrel.lock, um die Version für dein Team festzuschreiben.
Vorgefertigte, signierte Multi-Plattform-Images (linux/amd64, linux/arm64) werden bei jedem Release veröffentlicht:
docker pull ghcr.io/semrels/publisher-npm:latestÜberprüfe die Image-Signatur mit cosign:
cosign verify ghcr.io/semrels/publisher-npm:latest \ --certificate-identity-regexp 'https://github.com/SemRels/publisher-npm/.github/workflows/release.yml.*' \ --certificate-oidc-issuer https://token.actions.githubusercontent.comKonfiguration
Abschnitt betitelt „Konfiguration“version: 1plugins: - uses: @semrel/updater-npm phase: pre-tag args: update_lockfile: "true"
- uses: @semrel/publisher-npm phase: release args: npm_token: '${env.NPM_TOKEN}' npm_tag: latest npm_provenance: "true" npm_access: publicUmgebungsvariablen
Abschnitt betitelt „Umgebungsvariablen“| Name | Erforderlich | Standard | Beschreibung |
|---|---|---|---|
SEMREL_PLUGIN_NPM_TOKEN | ja (außer Dry-Run) | — | npm-Authentifizierungs-Token, wird als NODE_AUTH_TOKEN übergeben. |
SEMREL_PLUGIN_NPM_TAG | nein | latest | Dist-Tag (--tag <wert>). |
SEMREL_PLUGIN_NPM_PROVENANCE | nein | false | Wenn true, wird --provenance für npm-Provenance-Attestierungen angehängt. |
SEMREL_PLUGIN_NPM_ACCESS | nein | — | public oder restricted (--access <wert>, hilfreich für Scoped Packages). |
Release-Kontextvariablen
Abschnitt betitelt „Release-Kontextvariablen“SEMREL_VERSIONSEMREL_NEXT_VERSIONSEMREL_DRY_RUN
Paketmanager-Erkennung
Abschnitt betitelt „Paketmanager-Erkennung“publisher-npm prüft das Arbeitsverzeichnis in folgender Reihenfolge:
pnpm-lock.yaml→pnpm publishyarn.lock+.yarnrc.yml(oderyarn --version >= 2) →yarn npm publishyarn.lock→yarn publish- Fallback →
npm publish
Bei SEMREL_DRY_RUN=true gibt das Plugin den Paketnamen, die Version und den geplanten Befehl aus, ohne einen Upload auszuführen.