Zum Inhalt springen

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.

Terminal-Fenster
semrel plugin install @semrel/publisher-npm

semrel 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:

Terminal-Fenster
docker pull ghcr.io/semrels/publisher-npm:latest

Überprüfe die Image-Signatur mit cosign:

Terminal-Fenster
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.com
version: 1
plugins:
- 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: public
NameErforderlichStandardBeschreibung
SEMREL_PLUGIN_NPM_TOKENja (außer Dry-Run)—npm-Authentifizierungs-Token, wird als NODE_AUTH_TOKEN übergeben.
SEMREL_PLUGIN_NPM_TAGneinlatestDist-Tag (--tag <wert>).
SEMREL_PLUGIN_NPM_PROVENANCEneinfalseWenn true, wird --provenance für npm-Provenance-Attestierungen angehängt.
SEMREL_PLUGIN_NPM_ACCESSnein—public oder restricted (--access <wert>, hilfreich für Scoped Packages).
  • SEMREL_VERSION
  • SEMREL_NEXT_VERSION
  • SEMREL_DRY_RUN

publisher-npm prüft das Arbeitsverzeichnis in folgender Reihenfolge:

  1. pnpm-lock.yaml → pnpm publish
  2. yarn.lock + .yarnrc.yml (oder yarn --version >= 2) → yarn npm publish
  3. yarn.lock → yarn publish
  4. 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.