Cara memakai
- Ketik Versi, seperti 1.4.0, dan jika perlu versi di Bandingkan dengan untuk diurutkan terhadapnya.
- Pilih Kenaikan untuk melihat versi berikutnya. Untuk kenaikan Pra-rilis, beri nama pra-rilisnya di Nama pra-rilis.
- Ketik Rentang untuk memeriksa apakah versi memenuhinya, dan baca Cara rentang dibaca untuk melihat arti setiap bagiannya.
- Baca Versi setelah kenaikan, Urutan, dan Pemeriksaan rentang untuk jawaban yang Anda butuhkan.
Cara versi diurutkan
SemVer 2.0.0 membandingkan angka mayor, minor, dan patch sebagai angka. Versi yang punya label pra-rilis datang sebelum versi yang sama tanpa label. Pengenal pra-rilis dibandingkan satu per satu: angka sebagai angka, teks menurut urutan ASCII, dan angka sebelum teks. Metadata build, bagian setelah +, tidak dihitung.
- Urutan contoh dalam spesifikasi: 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.
- Awalan v, seperti pada v1.4.0, diterima dan bukan bagian dari versi.
Cara kenaikan bekerja
Kenaikan mayor menaikkan angka pertama dan mengatur dua angka lainnya menjadi 0. Kenaikan minor atau patch melakukan hal yang sama untuk bagiannya. Versi yang masih pra-rilis kehilangan labelnya bila kenaikan akan menaikkan rilisnya juga: 1.0.0-alpha menjadi 1.0.0 dengan kenaikan mayor, seperti yang dilakukan node-semver. Kenaikan pra-rilis memulai patch berikutnya dengan nama yang Anda beri, seperti 1.4.1-beta.0, atau menghitung naik angka terakhir pada pra-rilis yang sudah ada, seperti beta.1 menjadi beta.2.
Cara rentang dibaca
Sintaks rentang mengikuti node-semver, paket yang dipakai npm, dan tata bahasa di README-nya. Setiap bentuk mewakili komparator: ^1.3.0 berarti >=1.3.0 <2.0.0-0, ~1.2.3 berarti >=1.2.3 <1.3.0-0, dan 1.2.x berarti >=1.2.0 <1.3.0-0. Komparator di dalam satu himpunan harus semuanya terpenuhi. Himpunan yang dihubungkan || adalah alternatif, dan himpunan kosong menerima versi apa pun, seperti *.
Pra-rilis dan rentang
Versi pra-rilis seperti 1.5.0-beta.1 memenuhi rentang hanya bila salah satu komparator di himpunannya punya 1.5.0 yang sama dengan label pra-rilis. Versi yang belum selesai karena itu tetap berada di luar rentang secara default, seperti dijelaskan README node-semver. Pemeriksaan di halaman ini mengikuti aturan itu.
Contoh: 1.4.0 dengan kenaikan minor dan ^1.3.0 || 2.x
Versi 1.4.0 lebih tinggi daripada 1.4.0-beta.2, karena rilis lebih tinggi daripada pra-rilisnya. Kenaikan minor menghasilkan 1.5.0. Rentang ^1.3.0 || 2.x dibaca sebagai >=1.3.0 <2.0.0-0 atau >=2.0.0 <3.0.0-0, dan 1.4.0 memenuhi himpunan pertama.
| Isian | Hasil |
|---|---|
| 1.4.0 dibandingkan dengan 1.4.0-beta.2 | 1.4.0 lebih tinggi daripada 1.4.0-beta.2. |
| Kenaikan minor dari 1.4.0 | 1.5.0 |
| 1.4.0 dalam ^1.3.0 || 2.x | 1.4.0 memenuhi ^1.3.0 || 2.x. |
Pertanyaan yang sering diajukan
Apakah 1.0.0+build.1 sama dengan versi 1.0.0?
Untuk urutan dan rentang, ya. Metadata build setelah + tidak dihitung dalam urutan SemVer, sehingga kedua versi punya tempat yang sama dalam urutan. Halaman tetap menampilkan teks build agar Anda bisa melihatnya.
Mengapa 1.4.0-beta.2 lebih rendah daripada 1.4.0?
Pra-rilis belum stabil dan mungkin tidak memenuhi kompatibilitas yang dijanjikan nomornya, sehingga SemVer menempatkannya sebelum rilis dengan nomor yang sama. Karena itu 1.4.0-beta.2 datang sebelum 1.4.0, dan 1.4.0 datang sebelum 1.4.1.
Apakah ^1.3.0 menerima 2.0.0?
Tidak. Rentang caret mempertahankan angka tak-nol paling kiri, sehingga ^1.3.0 berarti minimal 1.3.0 dan di bawah 2.0.0. Tulis juga || 2.x bila mayor kedua harus diterima, seperti pada contoh.
Apa perbedaan ~1.2 dan ^1.2?
Rentang tilde ~1.2 berarti >=1.2.0 <1.3.0-0, sehingga menerima perubahan patch seperti 1.2.9 dan menolak 1.3.0. Rentang caret ^1.2 berarti >=1.2.0 <2.0.0-0, sehingga juga menerima 1.3.0 dan 1.9.9, tetapi tidak 2.0.0.
Mengapa suatu rentang menolak 1.5.0-beta.1?
Pra-rilis dikecualikan kecuali sebuah komparator menyebut versi yang sama dengan label pra-rilis, seperti >=1.5.0-beta.0. node-semver membuat pilihan ini karena pra-rilis berubah dengan cepat dan bisa merusak sesuatu.
Apakah versi saya dikirim ke server?
Tidak. Versi, rentang, dan perbandingannya dibaca dan diperiksa di peramban Anda, dan tidak ada yang Anda ketik yang disimpan.
Sumber
- Semantic Versioning 2.0.0 (dalam bahasa Inggris): spesifikasi
- README node-semver (dalam bahasa Inggris): rentang dan tata bahasa rentang (npm)
- README node-semver (dalam bahasa Inggris): tag pra-rilis (npm)
- Repositori node-semver (dalam bahasa Inggris), lisensi ISC (npm)
Angka dan teks terakhir diperiksa pada Selasa, 10 November 2026.