Инструменты разработчика

Калькулятор SemVerРазделяйте приоритет и соответствие диапазону

Проверьте ограничение зависимости, сравните два выпуска или вычислите следующий номер.

Калькулятор SemVer

Версии (по одной в строке)

Данные обрабатываются в этом браузере и не отправляются на сервер.

Результат

Введите данные или загрузите пример.

Параметры

Только строгий SemVer 2.0.0: без пробелов по краям, префикса v и пропущенных частей. Основные числа версии и чисто числовые идентификаторы предварительного выпуска не допускают ведущих нулей; идентификаторы сборки допускают.

Диапазоны npm допускают ^, ~, сравнения, x, дефис и ||. Пустой диапазон и пустая ветвь OR работают как подстановка любой версии.

Предварительные версии исключены, если сравнение той же группы явно не указывает предварительную версию с тем же major.minor.patch.

Метаданные сборки не меняют приоритет. Равные по приоритету версии сохраняют исходный порядок.

Ограничения инструмента: 1000 строк, 100000 единиц UTF-16, 256 символов на версию, 4096 на диапазон. Основные числа версии и чисто числовые идентификаторы предварительного выпуска не больше 9007199254740991. На идентификаторы сборки этот числовой предел не распространяется.

Ввод или параметры изменились. Перед экспортом обновите результаты.

Калькулятор SemVer помогает понять, почему более новая бета не подходит под диапазон зависимости. Сначала отдельно проверьте приоритет версии и условия диапазона, затем меняйте ограничение.

Сравнение версий отличается от сортировки текста: 1.10.0 идёт после 1.9.0. Семантическое версионирование также задаёт отдельные правила для числовых и текстовых идентификаторов предварительных выпусков.

Зачем использовать Калькулятор SemVer?

Разберитесь с исключённой бетой

Калькулятор SemVer показывает развёрнутые сравнения npm рядом с результатами. Версия может укладываться в числовые границы, но исключаться правилом предварительных выпусков.

Стабильные версии проходят через диапазон, а бета следует по отдельному пути.

Сохраняйте метки сборки

1.2.3+build.1 и 1.2.3+build.7 имеют одинаковый приоритет. Они сохраняют исходный порядок, а номер сборки не превращается в признак более новой версии.

Две метки сборки расположены на одной ступени лестницы версий.

Три проверки перед расчётом

01

Разделяйте версию и диапазон

Версия требует трёх чисел. Диапазон допускает сокращения 1.2 и ^0.2.3. Пустой диапазон или ветвь OR работает как подстановка любой версии.

02

Проверьте предварительные выпуски

По умолчанию опция выключена. Включение меняет соответствие диапазону, но не строгий синтаксис. Для 0.x внимательно читайте развёрнутые сравнения.

03

Сначала проверьте замену

Пример и Очистить показывают полный предпросмотр ввода и параметров. Применение подтверждает замену; отмена изменения возвращает прежнее состояние. Автоматический режим ждёт 350 мс, ручной поддерживает Ctrl/Cmd+Enter.

Четыре проверки выпусков

Проверка версий списком

Введите по версии в строке и проверьте сравнения npm, ^, ~, подстановки, диапазоны с дефисом и группы OR.

Сравнение приоритета

Сравниваются major, minor, patch и предварительные идентификаторы. Метаданные сборки не определяют, какая версия новее.

Стабильная сортировка

По возрастанию или убыванию. Некорректные строки сохраняются в конце с исходными номерами; равные по приоритету версии остаются в исходном порядке.

Повышение версий семью способами

major, minor, patch, premajor, preminor, prepatch и prerelease вычисляют новую версию, не заменяя исходную автоматически.

Синтаксис и границы расчёта

Строгие строки версий
Только строгий SemVer 2.0.0: без пробелов по краям, префикса v и пропущенных частей. Основные числа версии и чисто числовые идентификаторы предварительного выпуска не допускают ведущих нулей; идентификаторы сборки допускают. Метаданные сборки не меняют приоритет. Равные по приоритету версии сохраняют исходный порядок.
Правила диапазонов npm
Диапазоны npm допускают ^, ~, сравнения, x, дефис и ||. Пустой диапазон и пустая ветвь OR работают как подстановка любой версии. Предварительные версии исключены, если сравнение той же группы явно не указывает предварительную версию с тем же major.minor.patch.
Ограниченный объём
Ограничения инструмента: 1000 строк, 100000 единиц UTF-16, 256 символов на версию, 4096 на диапазон. Основные числа версии и чисто числовые идентификаторы предварительного выпуска не больше 9007199254740991. На идентификаторы сборки этот числовой предел не распространяется.
Поведение повышения
Повышение удаляет метаданные сборки. Новый счётчик начинается с 0. Пустой идентификатор сохраняет существующий идентификатор предварительной версии и увеличивает его номер.
Без установки пакетов
Нет запросов к реестру, установки зависимостей и изменения проекта. Пустые строки некорректны; один завершающий перенос лишь завершает текст. Соответствие диапазону не доказывает совместимость API.

Вопросы: Калькулятор SemVer

Чем различаются ~ и ^ в package.json?

~1.2.3 допускает стабильные версии от 1.2.3 до 1.3.0 исключительно; ^1.2.3 — до 2.0.0 исключительно. ^ сохраняет первый ненулевой компонент: ^0.2.3 исключает 0.3.0, а ^0.0.3 исключает 0.0.4.

Включает ли caret новейшую предварительную версию?

Обычно нет. Калькулятор SemVer следует npm: при выключенной опции группа должна явно указывать предварительную версию с тем же major.minor.patch. Дата публикации здесь ничего не меняет.

Зачем нужны метаданные сборки?

Они могут указывать сборку или коммит, но не меняют приоритет. Версии, отличающиеся только после +, равны по приоритету и сохраняют порядок при сортировке.

Можно сортировать теги разных форматов вместе?

Сортируются только строгие версии SemVer. v1.2.3 и 1.10-alpine3 сохраняются в конце как некорректные строки, без скрытого преобразования.

Как добавить суффикс alpha?

Выберите предварительное повышение и идентификатор alpha. premajor преобразует 1.2.3 в 2.0.0-alpha.0. Оставьте идентификатор пустым, чтобы сохранить существующий и увеличить его счётчик.

Неожиданный результат?

Попробуйте Калькулятор SemVer

Калькулятор SemVer проверит ваш список выпусков. Прочитайте объяснение диапазона и сохраните текущий отчёт.