2017-06-15 4 views
6

Es gibt einen sehr praktischen npm version Befehl. Neben Argumenten wie major, minor und patch akzeptiert es Argumente wie prerelease, prepatch usw.
Es heißt in der Dokumentation, die die Befehle in Übereinstimmung arbeiten mit der semver.inc Funktion.Gibt es Vorabversionskennungen für npm-Versionen?

Diese pre Befehle, über die ich eine Frage habe.

Angenommen, ich bin zur Zeit auf Version v1.0.0.
Wenn ich npm version prerelease ausführen, wird die Version auf v1.0.1-0 stoßen.

Kann für eine Prerelease-Kennung gemäß https://github.com/npm/node-semver#prerelease-identifiers eine zusätzliche Vereinbarung erstellt werden?

Ich wünschte, etwas wie npm version prerelease alpha würde Version auf v1.0.1-alpha.0 stoßen, aber das funktioniert nicht.

+0

Haben Sie eine Lösung gefunden? –

+1

Leider noch nicht. – timetowonder

+0

Ich suche auch so etwas. Für den Moment schreibe ich einfach die ganze Version, wie 'npm Version 1.0.1-alpha.0', die etwas einfacher ist als das Bearbeiten von package.json und das manuelle Taggen des Commits. –

Antwort

1

Ich habe mir das kürzlich angesehen, um zu sehen, ob es irgendwelche Updates zu dieser Sache gibt ... aber es scheint, dass die Dinge immer noch die gleichen sind.

Nein, es gibt keine Vorversions-IDs für npm-Versionen, die vom npm-Versionsbefehl unterstützt werden. Sie können die Argumentation, die das Team hier sehen: https://github.com/npm/npm/pull/12936#issuecomment-248153743

semver (https://www.npmjs.com/package/semver) unterstützt, was Sie zu tun versuchen, was so können Sie tun, ist die Version mit einem dieser wie Befehl erhalten:

semver <current version> -i prerelease --preid <prelease identifier> 

zum Beispiel:

semver 1.0.1 -i prerelease --preid alpha 

produzieren:

1.0.2-alpha.0 

Mit diesem Ergebnis können Sie es auf npm Version (sagen sie zum Beispiel in einer CI-Build), wie dies passieren:

npm version <resulting version from semver command> 

Eine weitere Alternative ist semantisch-Release (ein unabhängiges Projekt) zu verwenden: https://github.com/semantic-release/semantic-release

Das wird die semantische Versionierung basierend auf Commit-Nachrichten automatisieren, aber ich denke, es funktioniert nur mit github repo gehosteten Modulen, da bin ich mir nicht sicher.