SemVer doğrulayıcı

Anlamsal sürümleri doğrulayın, aralıkları okuyun.

Sürüm sayılan nedir

Katı SemVer 2.0.0 dilbilgisi. Üç sayı, başında sıfır bulunmayan negatif olmayan ASCII tam sayılardır.

MAJOR.MINOR.PATCH
geriye uyumsuz / uyumlu / hata düzeltme
1.2.3-alpha.1
ön sürüm, 1.2.3’ten aşağıda sıralanır
1.2.3+build.5
derleme üstverisi, sıralamada yoksayılır
1.2.3-0.3
sayısal ön sürüm tanımlayıcıları sayı olarak karşılaştırılır
v1.2.3
anlamsal sürüm değil (spesifikasyon SSS)
01.2.3
geçerli değil: baştaki sıfır
1.2.3-01
geçerli değil: sıfırla doldurulmuş sayısal ön sürüm
1.2.3+0.09
geçerli: derleme üstverisi sıfırla doldurulabilir

Aralık işlemcileri

1.2.3
tam olarak bu sürüm
^1.2.3
uyumlu: >=1.2.3 <2.0.0-0
~1.2.3
yalnızca yama: >=1.2.3 <1.3.0-0
>=1.2.3 <2.0.0
tek kümedeki karşılaştırıcıların VE’i
1.2.3 - 2.0.0
dahil aralık, iki yanda da boşluk gerekir
1.2.x / 1.x / *
kısmi sürümler ve jokerler
a || b
birleşim: kümelerden biri eşleşebilir
~>1.2.3
npm tarihsel takma adı, ~1.2.3 gibi işlenir

npm kısmi sürümleri nasıl doldurur

node-semver ile doğrulandı; -0 soneki, bir sonraki serinin ön sürümlerini dışarıda bırakan npm işaretçisidir.

npm kısmi sürümleri nasıl doldurur
AralıkAçılmış hâli
^1.2.3>=1.2.3 <2.0.0-0
^0.2.3>=0.2.3 <0.3.0-0
^0.0.3>=0.0.3 <0.0.4-0
^1>=1.0.0 <2.0.0-0
~1.2.3>=1.2.3 <1.3.0-0
~1.2>=1.2.0 <1.3.0-0
~1>=1.0.0 <2.0.0-0
1.2.x>=1.2.0 <1.3.0-0
1.x>=1.0.0 <2.0.0-0
1.2.3 - 2.0.0>=1.2.3 <=2.0.0
1.2.3 - 2>=1.2.3 <3.0.0-0
>1.x>=2.0.0

Ön sürüm önceliği

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

Sayısal tanımlayıcılar sayı olarak karşılaştırılır ve harf-rakam olanların altında sıralanır; daha kısa önek daha aşağıda yer alır. Derleme üstverisi hiçbir zaman etkili olmaz.

Sık yapılan hatalar

Bunlar doğrudan package.json dosyalarından ve sohbet kayıtlarından yapıştırılır.

"1.2.3",
Tırnaklar ve virgül package.json’dan geldi; yalnızca sürümü yapıştırın.
v1.2.3
Git etiketleri bir v taşır, anlamsal sürümler taşımaz.
1.2
İki sayı sürüm değil, bir aralıktır.
1.2.3-01
npm gevşek modu bunu 1.2.3-1 olarak okur ve sessizce yeniden yazar.

Hangi kural kitabı kullanılıyor

  • Bir sürüm dizesine verilen karar katı SemVer 2.0.0’dır — gevşek mod yok, yeniden yazma yok, normalize etme yok.
  • Aralıklar npm node-semver kurallarını izler, çünkü SemVer spesifikasyonu aralık tanımlamaz.
  • Bu araç aralıklarda npm’den daha katıdır: aralığın içindeki bir v ön eki veya baştaki sıfır reddedilir ve || boş tarafı “herhangi bir sürüm” değil, hatadır.
  • Geçersiz bir sürüm için gösterilen npm okumaları semver.valid(v, {loose:true}) ve semver.coerce(v) kaynaklıdır. Bunlar yalnızca bilgidir — asla geçerli demek değildir.
  • Konumlar kod noktası sayar; arayüzde 1’den, JSON’da 0’dan başlar.

Nasıl kullanılır

  1. Sol alana 1.2.3-beta.1+build.5 gibi bir sürüm yapıştırın. Aşağıdaki her şey siz yazdıkça güncellenir — basılacak bir düğme yok.
  2. İsterseniz sağa ^1.2.0 gibi bir npm aralığı yapıştırın; sürümle aralığın nasıl ilişkilendiğini görün.
  3. Önce rozeti okuyun: geçerli mi, değilse hangi karakterde hangi kural bozulmuş.
  4. Aralığın npm includePrerelease okumasını görmek istiyorsanız “Ön sürümleri dahil et” kutusunu işaretleyin.
  5. Tam sorun listesini kopyalamak veya indirmek için JSON sonucu bölümünü açın.

Çalışılmış örnek

Sürüm + aralık

1.2.3-beta.1+build.5  ^1.2.0

Sonuç

Geçerli SemVer (MAJOR 1, MINOR 2, PATCH 3, ön sürüm beta.1, derleme build.5). ^1.2.0 ifadesi >=1.2.0 <2.0.0-0 olarak açılır, sınırlar [1.2.0, 2.0.0). Karar: sağlanmadı — kümede 1.2.3 için bir ön sürüm karşılaştırıcısı yok.

“Ön sürümleri dahil et” kutusunu işaretleyin; aynı çift bu kez sağlanmış olur.

Sınırlamalar

  • Karar katı SemVer 2.0.0’dır, bu yüzden v1.2.3 ve 1.2.3-01 reddedilir; oysa npm gevşek modu bunları kabul eder veya yeniden yazar.
  • Aralıklar yalnızca npm node-semver kurallarını izler — git describe, Cargo, PEP 440 ve Go modül sürümleri kapsam dışıdır.
  • Kayıt sorgusu yok: bu araç, ^1.2.0 aralığının gerçekte hangi sürümü kuracağını söyleyemez.
  • Bir seferde bir sürüm ve bir aralık — toplu liste yok, sıralama yok, ikili karşılaştırma yok, sürüm artışı önizlemesi yok.
  • Number.MAX_SAFE_INTEGER üzerindeki ana sayılar işaretlenir ve metin olarak karşılaştırılır; asla bir JS sayısına dönüştürülmez.
  • Sayfadan hiçbir şey çıkmaz: ağ yok, depolama yok, URL parametresi yok — sayfa yenilendiğinde her şey silinir.

Tamamen tarayıcınızda çalışan diğer geliştirici yardımcıları.