Semver-калькулятор
Разбирайте, сравнивайте, проверяйте диапазоны, инкрементируйте и приводите семантические версии в браузере. Вводимые версии остаются на устройстве.
Вводимые версии и диапазоны вычисляются локально в вашем браузере и никогда не загружаются.
Нужен быстрый уникальный идентификатор? Попробуйте генератор UUID.
Об инструменте Semver-калькулятор
Этот semver-калькулятор — это набор инструментов SemVer для всего, что вы делаете с номерами версий. Разбирайте версию вроде 1.2.3-beta.1+build.42 на её major, minor, patch, prerelease и метаданные сборки; сравнивайте две версии, чтобы увидеть, какая новее и на каком уровне они различаются; проверяйте, удовлетворяет ли версия npm-диапазону вроде ^1.2.3, ~1.2, 1.x или >=1.0.0 <2.0.0; инкрементируйте версию по major, minor, patch или любому шагу prerelease; и приводите свободную строку вроде v1.2 в чистый semver. Он создан для разработчиков, авторов пакетов и release-инженеров, которые ежедневно рассуждают о диапазонах зависимостей. На основе той же библиотеки semver, что использует npm, каждое вычисление выполняется в вашем браузере, поэтому вводимые версии остаются на устройстве.
Возможности
- Разбор версии на major, minor, patch, идентификаторы prerelease и метаданные сборки
- Сравнение двух версий с отношением (A > B, A = B, A < B) и уровнем различия
- Проверка, удовлетворяет ли версия диапазону вроде ^1.2.3, ~1.2, 1.x или >=1.0.0 <2.0.0
- Предпросмотр нескольких примеров версий с прохождением/непрохождением для введённого диапазона
- Инкремент по major, minor, patch, premajor, preminor, prepatch или prerelease
- Приведение свободных строк вроде v1.2 или 1.2.3.4 в корректный semver
- Живая проверка ввода с понятным сообщением, когда версия или диапазон некорректны
- Копирование любого поля результата в один клик
Как использовать Semver-калькулятор
- Выберите режим: разбор, сравнение, диапазон, инкремент или приведение.
- Введите версию (и вторую версию или диапазон, в зависимости от режима).
- Прочитайте живые результаты в строках информации и значках под полями ввода.
- Скопируйте нужное значение, например поднятую версию или уровень различия.
Пример
Ввод
version: 1.5.0
range: ^1.2.3
Результат
1.5.0 satisfies ^1.2.3 ✓
1.6.0 → pass 2.0.0 → fail
Каретный диапазон ^1.2.3 допускает всё вплоть до следующей major (2.0.0), но не включая её.
Частые ошибки и устранение неполадок
- Разбор говорит, что версия некорректна, хотя она выглядит нормально. — Semver нужны все три части. Используйте 1.2.0 вместо 1.2 и держите prerelease/build после дефиса/плюса, например 1.2.3-rc.1+build.5.
- Диапазон вроде 1.2 или ^1.2 ведёт себя не так, как вы ожидаете. — 1.2 трактуется как 1.2.x, а ^1.2 допускает всё вплоть до следующей major. Используйте примеры версий в режиме «Диапазон», чтобы точно подтвердить, что проходит.
- Инкремент до prerelease даёт 1.2.4-0 вместо старта с того же patch. — От стабильной 1.2.3 поднятие prerelease сначала переходит к следующему patch (1.2.4-0). Используйте premajor/preminor/prepatch, чтобы управлять, какая часть поднимается.
- Приведение отбрасывает часть вашего ввода, например 1.2.3.4 становится 1.2.3. — Приведение находит первую последовательность из трёх чисел и игнорирует остальное, поэтому четвёртый сегмент или завершающий текст намеренно отбрасывается.
Часто задаваемые вопросы
- Что допускает диапазон ^1.2.3?
- Каретный диапазон ^1.2.3 допускает любую версию, которая не меняет крайнюю левую ненулевую цифру, поэтому он совпадает с 1.2.3 вплоть до 2.0.0, но не включая её. Для версий 0.x правила строже: ^0.2.3 допускает от 0.2.3 до 0.3.0.
- Как prerelease-версия сравнивается со стабильным релизом?
- У prerelease ниже приоритет, чем у связанного релиза, поэтому 1.0.0-rc.1 меньше, чем 1.0.0. Prerelease сравниваются поле за полем: идентификаторы сортируются, а числовые идентификаторы стоят ниже более длинных или буквенно-цифровых.
- В чём разница между ~1.2 и ^1.2?
- Тильда ~1.2 допускает изменения уровня patch внутри 1.2 (>=1.2.0 <1.3.0), а каретка ^1.2 допускает изменения minor и patch вплоть до следующей major (>=1.2.0 <2.0.0). Используйте режим «Диапазон», чтобы увидеть, как примеры версий проходят или не проходят.
- Как этот semver-калькулятор обрабатывает метаданные сборки?
- Метаданные сборки после знака плюс (например +build.42) разбираются и показываются, но игнорируются при сравнении приоритета, поэтому 1.0.0+a и 1.0.0+b считаются равными версиями.
- Что делает приведение версии?
- Приведение превращает свободную строку в корректный semver, находя первую последовательность major.minor.patch, какую может. Так v1.2 становится 1.2.0, 1.2.3.4 становится 1.2.3, а release-3.1 становится 3.1.0; недостающие части по умолчанию равны нулю.
- По каким типам релиза можно инкрементировать?
- Вы можете поднимать по major, minor, patch, premajor, preminor, prepatch или prerelease. Варианты с pre- начинают линию prerelease на выбранной части, например premajor на 1.2.3 даёт 2.0.0-0.
Связанные инструменты
Все инструменты ArrayKit