Cách dùng Máy tính Semver
- So sánh: nhập hai phiên bản để xem cái nào mới hơn và vì sao (có tính cả prerelease và build metadata).
- Tăng phiên bản: nhập phiên bản hiện tại rồi nhấn loại thay đổi để lấy phiên bản tiếp theo. Kết quả được tự động sao chép.
- Kiểm tra range: nhập range npm như
^1.2.0,~1.2,1.xhoặc>=1.2 <2cùng danh sách phiên bản. - Đọc phần giải thích bằng tiếng Việt đơn giản và xem những phiên bản nào thỏa mãn range.
Semantic versioning: MAJOR.MINOR.PATCH
| Phần | Tăng khi… | Ví dụ |
|---|---|---|
| MAJOR | bạn có thay đổi không tương thích ngược | 1.4.2 → 2.0.0 |
| MINOR | bạn thêm tính năng, vẫn tương thích ngược | 1.4.2 → 1.5.0 |
| PATCH | bạn sửa lỗi, vẫn tương thích ngược | 1.4.2 → 1.4.3 |
| Prerelease | bạn phát hành một bản thử nghiệm | 2.0.0-beta.1 |
| Build metadata | bạn gắn thẻ một bản build (không ảnh hưởng thứ tự ưu tiên) | 1.4.2+sha.5114f85 |
Bảng tra cứu nhanh range npm
| Range | Ý nghĩa | Cho phép |
|---|---|---|
^1.2.3 | Tương thích với 1.2.3 | >=1.2.3 <2.0.0 |
^0.2.3 | Với 0.x, minor đóng vai trò “major” | >=0.2.3 <0.3.0 |
~1.2.3 | Chỉ cập nhật patch | >=1.2.3 <1.3.0 |
1.x / 1 | Mọi phiên bản 1.y.z | >=1.0.0 <2.0.0 |
1.2.3 - 2.3 | Range dùng dấu gạch nối | >=1.2.3 <2.4.0 |
>=1.2 <1.5 || 2.x | Một trong hai tập | 1.2.0–1.4.x hoặc 2.x |
Prerelease chỉ khớp với range khi một comparator trong cùng tập có prerelease trên cùng major.minor.patch. Vì vậy ^1.2.0 không khớp 1.3.0-beta.1, nhưng ^1.3.0-beta.0 thì khớp. Cách này giúp tránh cài đặt phiên bản chưa ổn định một cách vô tình.
Range nằm trong package.json của bạn. Để quyết định phiên bản tiếp theo từ các commit, hãy dùng Trình tạo Changelog; để gắn thẻ bản phát hành, hãy dùng Trình tạo lệnh Git.
Cũng được tìm dưới tên: semver calculator, kiểm tra semver range, npm version range là gì, caret và tilde khác nhau, semantic versioning là gì, tăng version semver, so sánh phiên bản npm, semver prerelease.
Các công cụ dùng kèm tốt với Máy tính Semver
- GitHub Actions Generator — Chọn công nghệ, trigger và các bước, bạn sẽ nhận được file .github/workflows/ci.yml có chú thích — gồm cài đặt, cache, lint, test, build, ma trận phiên bản và tùy chọn deploy lên GitHub Pages, Vercel hoặc container registry.
- Chuyển đổi cơ số — Nhập một số ở bất kỳ cơ số nào và xem ngay kết quả ở tất cả các cơ số còn lại.
- So sánh văn bản — Dán bản gốc và bản đã chỉnh sửa để xem các dòng được thêm, xóa và thay đổi song song, kèm các từ chính xác đã đổi được tô sáng trong từng dòng.
- Kiểm tra YAML — Dán file Docker Compose, manifest Kubernetes, workflow GitHub Actions hoặc bất kỳ YAML nào để xác định chính xác lỗi, phát hiện các lỗi thường gặp và nhận bản đã định dạng gọn gàng.
Câu hỏi thường gặp
Tôi có thể dùng công cụ này để kiểm tra semver không?
Sự khác nhau giữa ^ và ~ trong package.json là gì?
^1.2.3 cho phép cập nhật minor và patch (đến trước 2.0.0). ~1.2.3 chỉ cho phép cập nhật patch (đến trước 1.3.0). Với phiên bản 0.x, ^ nghiêm ngặt hơn: ^0.2.3 chỉ cho phép 0.2.x.