Validator SemVer
Validasi versi semantik dan urai rentang versi.
Versi
- MAJOR
- MINOR
- PATCH
- Prarilis
- Metadata build
Rentang
Hasil JSON
Apa yang dihitung sebagai versi
Tata bahasa SemVer 2.0.0 ketat. Ketiga angka adalah bilangan bulat ASCII non-negatif tanpa nol di depan.
- MAJOR.MINOR.PATCH
- merusak / kompatibel / perbaikan
- 1.2.3-alpha.1
- prarilis, berperingkat di bawah 1.2.3
- 1.2.3+build.5
- metadata build, diabaikan untuk prioritas
- 1.2.3-0.3
- pengenal prarilis numerik dibandingkan sebagai angka
- v1.2.3
- bukan versi semantik (FAQ spesifikasi)
- 01.2.3
- tidak valid: nol di depan
- 1.2.3-01
- tidak valid: prarilis numerik berisi nol di depan
- 1.2.3+0.09
- valid: metadata build boleh berisi nol di depan
Operator rentang
- 1.2.3
- persis versi ini
- ^1.2.3
- kompatibel: >=1.2.3 <2.0.0-0
- ~1.2.3
- hanya patch: >=1.2.3 <1.3.0-0
- >=1.2.3 <2.0.0
- AND dari komparator dalam satu set
- 1.2.3 - 2.0.0
- rentang inklusif, spasi wajib di kedua sisi
- 1.2.x / 1.x / *
- versi parsial dan wildcard
- a || b
- gabungan: salah satu set boleh cocok
- ~>1.2.3
- alias historis npm, ditangani sebagai ~1.2.3
Cara npm mengisi versi parsial
Diverifikasi terhadap node-semver; akhiran -0 adalah sentinel npm yang mengecualikan prarilis seri berikutnya.
| Rentang | Diperluas |
|---|---|
| ^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 |
Prioritas prarilis
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
Pengenal numerik dibandingkan sebagai angka dan berperingkat di bawah pengenal alfanumerik; awalan yang lebih pendek berperingkat lebih rendah. Metadata build tidak pernah berpengaruh.
Kesalahan umum
Ini sering ditempel langsung dari package.json dan log obrolan.
- "1.2.3",
- Tanda kutip dan koma ikut dari package.json - tempel versinya saja.
- v1.2.3
- Tag Git membawa v, versi semantik tidak.
- 1.2
- Dua angka adalah rentang, bukan versi.
- 1.2.3-01
- Mode longgar npm membacanya sebagai 1.2.3-1 dan menulis ulangnya diam-diam.
Buku aturan yang dipakai
- Putusan atas string versi adalah SemVer 2.0.0 ketat - tanpa mode longgar, tanpa penulisan ulang, tanpa normalisasi.
- Rentang mengikuti node-semver npm, karena spesifikasi SemVer tidak mendefinisikan rentang.
- Alat ini lebih ketat daripada npm untuk rentang: awalan v atau nol di depan di dalam rentang ditolak, dan sisi kosong pada || adalah kesalahan, bukan "versi apa pun".
- Bacaan npm yang ditampilkan untuk versi tidak valid berasal dari semver.valid(v, {loose:true}) dan semver.coerce(v). Itu hanya informasi - tidak pernah menjadi kelulusan.
- Posisi menghitung titik kode dan mulai dari 1 di antarmuka, dari 0 di JSON.
Cara menggunakan
- Tempel versi seperti 1.2.3-beta.1+build.5 ke bidang kiri. Semua yang di bawahnya diperbarui saat Anda mengetik - tidak ada tombol yang perlu ditekan.
- Opsional, tempel rentang npm seperti ^1.2.0 di kanan untuk melihat hubungan antara versi dan rentang.
- Baca lencananya dulu: valid atau tidak, dan jika tidak, aturan mana yang rusak di karakter mana.
- Centang Sertakan prarilis bila Anda ingin bacaan includePrerelease npm untuk rentang tersebut.
- Buka Hasil JSON untuk menyalin atau mengunduh daftar masalah lengkap.
Contoh pengerjaan
Versi + rentang
1.2.3-beta.1+build.5 ^1.2.0
Hasil
SemVer valid (MAJOR 1, MINOR 2, PATCH 3, prarilis beta.1, build build.5). ^1.2.0 diperluas menjadi >=1.2.0 <2.0.0-0, batas [1.2.0, 2.0.0). Putusan: tidak terpenuhi - set tidak memiliki komparator prarilis untuk 1.2.3.
Centang Sertakan prarilis dan pasangan yang sama menjadi terpenuhi.
Batasan
- Putusannya adalah SemVer 2.0.0 ketat, jadi v1.2.3 dan 1.2.3-01 ditolak meskipun mode longgar npm menerima atau menulis ulangnya.
- Rentang hanya mengikuti node-semver npm - git describe, Cargo, PEP 440, dan versi modul Go di luar cakupan.
- Tanpa pencarian registri: alat tidak dapat memberi tahu versi mana yang benar-benar akan dipasang oleh ^1.2.0.
- Satu versi dan satu rentang per waktu - tanpa daftar batch, pengurutan, perbandingan berpasangan, atau pratinjau kenaikan versi.
- Angka inti di atas Number.MAX_SAFE_INTEGER ditandai dan dibandingkan sebagai teks, tidak pernah dikonversi ke angka JS.
- Tidak ada yang keluar dari halaman: tanpa jaringan, penyimpanan, atau parameter URL - muat ulang menghapus semuanya.
Alat terkait
Pembantu pengembang lain yang berjalan sepenuhnya di peramban Anda.