2013-11-28 18 views
8

W mojej aplikacji mam użytkowników instalować zależności, uruchamiając npm install - standardowe zachowanie torfowiska.Czy npm honoruje nowsze wersje przedpremierowe w semwerze?

Jednak mam jedną paczkę, która zmienia się często, i starając się nie skończyć z absurdalnie dużym numerem wersji, takim jak 0.1.12324, natknąłem się na koncepcję przedpremierowych wersji.

W jaki sposób npm traktuje numery w wydaniach wstępnych podczas pracy pod numerem npm install?

Zakładając paczkę packageA ma numer wersji 0.1.1-r1234, a moi użytkownicy mają semver zależność ~0.1.1:

wiem, że nowy użytkownik bez packageA zainstalowany automatycznie mieć tę wersję (0.1.1-r1234) zainstalowane.

Co, jeśli ktoś ma już zainstalowaną wersję packageA, wersji 0.1.1-r1233? Czy npm install wie, aby zainstalować nowszą wersję przedpremierową?

Odpowiedz

5

Wydawało mi się, że odpowiedziałem na moje własne pytanie. From the main page at semver.org:

Pierwszeństwo dwóch wersji wstępnych o tej samej głównej, drobne i wersji plastra musi być określona poprzez porównanie każdy punkt oddzielony identyfikator od lewej do prawej, aż różnica znajduje się w następujący sposób: identyfikatory zawierające tylko Cyfry są porównywane numerycznie, a identyfikatory z literami lub łącznikami są porównywane leksykalnie w porządku sortowania ASCII. Identyfikatory numeryczne mają zawsze niższy priorytet niż identyfikatory nieliczbowe. Większy zestaw pól przed wydaniem ma wyższy priorytet niż mniejszy zestaw, jeśli wszystkie poprzednie identyfikatory są równe. Przykład: 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.