2013-11-28 5 views
8

In meiner App habe ich Benutzer installieren Abhängigkeiten durch Ausführen von npm install - Mood Standardverhalten.Hält npm neuere Vorabversionen in semver?

Allerdings habe ich ein Paket, das sich häufig ändert, und in dem Bemühen, nicht mit einer lächerlich großen Versionsnummer wie 0.1.12324 zu enden, stolperte ich über das Konzept der Vorabversionen.

Wie behandelt npm Prerelease-Nummern beim Ausführen npm install?

Unter der Annahme, mein Paket packageA eine Versionsnummer von 0.1.1-r1234 hat, und meine Nutzer haben eine Abhängigkeit semver von ~0.1.1:

Ich weiß, dass ein neuer Benutzer ohne packageA installiert wird automatisch die Version haben (0.1.1-r1234) installiert.

Was ist, wenn bereits jemand packageA installiert hat, von Version 0.1.1-r1233? Kann npm install die neuere Vorabversion installieren?

Antwort

5

Ich schien meine eigene Frage beantwortet zu haben. From the main page at semver.org:

Precedence für zwei Vorabversionen mit derselben Dur-, Moll- und Patch-Version ist durch Vergleichen jeder Punkt getrennt Kennung von links nach rechts, bis ein Unterschied gefunden bestimmt werden wie folgt: Identifikatoren nur bestehend aus Ziffern werden numerisch verglichen und Bezeichner mit Buchstaben oder Bindestrichen werden in der ASCII-Sortierreihenfolge lexikalisch verglichen. Numerische Bezeichner haben immer einen niedrigeren Vorrang als nicht-numerische Bezeichner. Ein größerer Satz von Vorab-Freigabe-Feldern hat eine höhere Priorität als eine kleinere Menge, wenn alle vorhergehenden Kennungen gleich sind. Beispiel: 1.0.0-alpha < 1.0.0-alpha.1 < 1.0.0-alpha.beta < 1.0.0-beta < 1.0.0-beta.2 < 1.0.0-beta.11 < 1.0.0- rc.1 < 1.0.0.