Auf npm veröffentlichen und semantische Versionierung
Releases mit changesets oder semantic-release automatisieren und Scoped Packages in der npm-Registry veröffentlichen
Auf npm veröffentlichen und semantische Versionierung ist eine kostenlose React Academy-Lektion auf CoddyKit. Dies ist Lektion 4 von 4. Du kannst die komplette Lektion unten kostenlos lesen – dann übst du sie direkt im Browser mit einem integrierten Code-Editor und einem KI-Tutor rund um die Uhr. Sie ist Teil des React Academy-Lernpfads, und dein Fortschritt wird über Web und CoddyKit-App synchronisiert. Der React Academy-Kurs umfasst insgesamt 4 Lektionen.
npm publish --dry-run
Führen Sie vor der Veröffentlichung immer npm publish --dry-run aus. Dadurch wird die Veröffentlichung simuliert, ohne tatsächlich etwas hochzuladen. Sie sehen genau, welche Dateien enthalten wären, wie groß sie sind und welchen Inhalt das Paket-Tarball hätte. So werden häufige Fehler erkannt, etwa versehentlich eingeschlossene Quelldateien oder ein fehlendes dist-Verzeichnis.
Zu veröffentlichende Dateien steuern
Steuern Sie mit dem Feld files in package.json, was veröffentlicht wird: "files": ["dist", "README.md"]. Dieser Whitelist-Ansatz ist sicherer als .npmignore, das als Blacklist funktioniert und versehentlich vertrauliche Dateien offenlegen kann, wenn Sie vergessen, sie hinzuzufügen. Schließen Sie immer dist, Typdeklarationen und Dokumentation ein. Schließen Sie niemals src, Tests oder node_modules ein.
Grundlagen der semantischen Versionierung
npm-Pakete folgen der semantischen Versionierung (semver): MAJOR.MINOR.PATCH. Erhöhen Sie MAJOR bei inkompatiblen Änderungen, etwa beim Entfernen von Props oder beim Ändern von API-Signaturen. Erhöhen Sie MINOR bei neuen rückwärtskompatiblen Funktionen, etwa neuen Komponenten oder neuen optionalen Props. Erhöhen Sie PATCH bei rückwärtskompatiblen Fehlerbehebungen. Versionen im Format 0.x.x gelten als noch nicht stabil; hier kann sich alles ändern.
Vorabversionen
Vorabversionskennungen zeigen an, dass eine Version noch nicht für den Produktionseinsatz bereit ist: 1.0.0-alpha.1 für frühe experimentelle Builds, 1.0.0-beta.2 für funktionsvollständige, aber möglicherweise fehlerhafte Versionen und 1.0.0-rc.1 (Release Candidate) für Versionen, die für den abschließenden Test bereit sind. Veröffentlichen Sie Vorabversionen mit npm publish --tag beta, damit sie nicht zur standardmäßig installierten Version werden.
Das Tool Changesets
Changesets ist das Standardtool zur Verwaltung von Paketversionen und Changelogs in Komponentenbibliotheken. Im Workflow führen Mitwirkende yarn changeset add aus, um zu dokumentieren, was sich geändert hat und welcher Änderungstyp vorliegt (major/minor/patch). Die CI führt yarn changeset version aus, um die Paketversionen zu erhöhen. Bei der Veröffentlichung wird mit yarn changeset publish nach npm veröffentlicht.
Automatische CHANGELOG-Generierung
Changesets generiert und pflegt CHANGELOG.md automatisch auf Grundlage der von Mitwirkenden eingereichten Changeset-Dateien. Jeder Eintrag enthält die Versionsnummer, das Veröffentlichungsdatum und eine Beschreibung der Änderungen. So entsteht eine für Menschen lesbare Historie jeder Version, ohne dass der Changelog manuell gepflegt werden muss.
semantic-release als Alternative
semantic-release ist ein vollständig automatisiertes Tool für die Versionierung. Es ermittelt die nächste Version aus Conventional-Commit-Nachrichten (feat: → minor, fix: → patch, BREAKING CHANGE: → major). Es erhöht die Version, generiert den Changelog und veröffentlicht nach npm – alles wird von der CI beim Zusammenführen in main ausgelöst. Eine manuelle Verwaltung von Versionen ist nicht erforderlich.
npm-Zugriff: öffentlich vs. eingeschränkt
Pakete ohne Scope (my-component) sind immer öffentlich. Pakete mit Scope (@myorg/my-component) sind standardmäßig eingeschränkt (privat). Veröffentlichen Sie sie mit npm publish --access public öffentlich. Für eingeschränkte Pakete benötigen Sie ein kostenpflichtiges npm-Konto oder eine Organisation. Überprüfen Sie die Zugriffseinstellungen vor Ihrer ersten Veröffentlichung.
npm-Provenance
npm Provenance verknüpft Ihr veröffentlichtes Paket auf überprüfbare Weise mit dem zugehörigen Git-Commit. Aktivieren Sie dies in GitHub Actions mit npm publish --provenance. Nutzer können überprüfen, ob das installierte Paket aus genau dem Quell-Commit erstellt wurde, der auf der npm-Registry-Seite angezeigt wird. Dadurch wird die Sicherheit der Software-Lieferkette deutlich verbessert.
Alte Versionen als veraltet markieren
Wenn eine Version einen kritischen Fehler oder eine inkompatible Änderung enthält, markieren Sie sie als veraltet: npm deprecate your-package@1.2.3 "Security vulnerability, upgrade to 1.2.4". npm zeigt allen Personen, die diese Version installieren, eine Warnung zur veralteten Version an. Die Version wird dadurch nicht entfernt (npm löscht veröffentlichte Versionen standardmäßig nicht), aber Nutzer werden auf ein Upgrade hingewiesen.
Benennung von Paketen mit Scope
Pakete mit Scope verwenden das Format @scope/package-name. Der Scope ist normalerweise Ihr npm-Benutzername oder der Name Ihrer Organisation. Pakete mit Scope machen deutlich, wer das Paket pflegt, und verhindern Namenskonflikte mit Paketen ohne Scope. Verwenden Sie Pakete mit Scope für private Pakete sowie für Open-Source-Pakete, die Ihrer Organisation zugeordnet sind.
Semantische Versionierung: Major vs. Minor
Wann sollten Sie gemäß der semantischen Versionierung die MAJOR-Versionsnummer erhöhen?
Lektionsrückblick: Veröffentlichen und Versionieren
Verwenden Sie npm publish --dry-run als Vorschau und das Feld files, um zu steuern, was veröffentlicht wird. Semantische Versionierung: MAJOR für inkompatible Änderungen, MINOR für neue Funktionen, PATCH für Fehlerbehebungen. Vorabversionen verwenden die Tags -alpha/-beta/-rc. Changesets automatisiert die Versionierung und die CHANGELOG-Generierung für gemeinsam entwickelte Bibliotheken. semantic-release automatisiert die Abläufe auf Grundlage von Conventional Commits. Aktivieren Sie --provenance für die Sicherheit der Software-Lieferkette. Markieren Sie fehlerhafte Versionen mit npm deprecate als veraltet.
Häufig gestellte Fragen
Ist die Lektion „Auf npm veröffentlichen und semantische Versionierung“ kostenlos?
Ja — der vollständige Text von „Auf npm veröffentlichen und semantische Versionierung“ ist hier im Web kostenlos zu lesen. Um sie interaktiv zu üben (integrierter Code-Editor und 24/7 KI-Tutor) und den Rest des React Academy-Kurses freizuschalten, upgrade auf CoddyKit PRO. Der React Academy-Kurs umfasst insgesamt 4 Lektionen.
Was lerne ich in „Auf npm veröffentlichen und semantische Versionierung“?
Releases mit changesets oder semantic-release automatisieren und Scoped Packages in der npm-Registry veröffentlichen Du übst React Academy mit praktischem Code, den du direkt im Browser ausführst, und ein 24/7 KI-Tutor beantwortet deine Fragen während du die Lektion bearbeitest.
Brauche ich Erfahrung, um React Academy zu starten?
Keine Vorkenntnisse erforderlich. React Academy auf CoddyKit ist für Anfänger bis fortgeschrittene Lernende strukturiert, sodass du hier starten oder von Anfang an beginnen und in deinem eigenen Tempo voranschreiten kannst. Dies ist Lektion 4 von 4.
Wie lange dauert die Lektion „Auf npm veröffentlichen und semantische Versionierung“?
Die meisten CoddyKit-Lektionen dauern etwa 5–10 Minuten. Jede ist kompakt und interaktiv, sodass du stetig Fortschritte machst und genau dort weitermachst, wo du aufgehört hast – im Web und in der App.
Kann ich in dieser React Academy-Lektion Code schreiben und ausführen?
Ja. Jede React Academy-Lektion enthält einen integrierten Code-Editor, sodass du echten Code direkt in deinem Browser schreibst und ausführst und sofort KI-Feedback erhältst — ohne lokale Einrichtung erforderlich.
Alle Lektionen in diesem Kurs
- Mit Rollup und tsup für Bibliotheken bundlen
- ESM- und CJS-Ausgaben für Dual Packages
- Peer-Dependencies und Tree Shaking
- Auf npm veröffentlichen und semantische Versionierung