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

Введите версию, чтобы увидеть её части, порядок относительно другой версии, следующее повышение и то, входит ли она в диапазон npm. Страница следует правилам SemVer 2.0.0 и синтаксису диапазонов node-semver.

Бесплатно Работает в браузере Проверено вторник, 10 ноября 2026 г.

Версия вида 1.4.0, с необязательной частью -предрелиз и +сборка.

Другая версия, с которой сравнить первую. Оставьте поле пустым, чтобы пропустить сравнение.

Часть версии, которую поднимают на единицу. Части ниже неё сбрасываются в 0.

Диапазон npm, например ^1.3.0, ~1.2 или >=1.2.0 <2.0.0. Оставьте поле пустым, чтобы пропустить проверку.

Результат

Версия после повышения — Версия после выбранного повышения.
Порядок — Какая из двух версий идёт первой по приоритету SemVer.
Проверка диапазона — Входит ли версия в диапазон.
Части версии

Как читается диапазон

Этот инструмент работает в вашем браузере. То, что вы вводите, нам не отправляется.

Как пользоваться

  1. Введите Версия, например 1.4.0, и при желании версию в поле Сравнить с, чтобы сравнить их.
  2. Выберите Повышение, чтобы увидеть следующую версию. Для повышения Предрелиз назовите предрелиз в поле Название предрелиза.
  3. Введите Диапазон, чтобы проверить, входит ли в него версия, и прочитайте Как читается диапазон, чтобы понять, что означает каждая его часть.
  4. Прочитайте Версия после повышения, Порядок и Проверка диапазона, чтобы получить нужный ответ.

Как сравниваются версии

SemVer 2.0.0 сравнивает основной, минорный и патч-номера как числа. Версия с меткой предрелиза идёт раньше той же версии без неё. Идентификаторы предрелиза сравниваются по одному: числа как числа, текст по порядку символов ASCII, а число раньше текста. Метаданные сборки, часть после +, в сравнении не участвуют.

  • Порядок примеров из спецификации: 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.
  • Начальная v, как в v1.4.0, принимается и в версию не входит.

Как работает повышение

Повышение основной версии увеличивает первое число и сбрасывает два других в 0. Минорное и патч-повышение делают то же для своей части. Версия, которая ещё является предрелизом, теряет метку, если повышение всё равно выпускает релиз: 1.0.0-alpha становится 1.0.0 при повышении основной версии, как и в node-semver. Повышение предрелиза начинает следующий патч с названием, которое вы задали, например 1.4.1-beta.0, или увеличивает последнее число существующего предрелиза, например beta.1 до beta.2.

Как читаются диапазоны

Синтаксис диапазонов следует node-semver, пакету, который использует npm, и его описанию грамматики в README. Каждая запись означает сравнения: ^1.3.0 значит >=1.3.0 <2.0.0-0, ~1.2.3 значит >=1.2.3 <1.3.0-0, а 1.2.x значит >=1.2.0 <1.3.0-0. Все сравнения внутри одного набора должны выполняться. Наборы, соединённые ||, — это варианты, а пустой набор принимает любую версию, как и *.

Предрелизы и диапазоны

Предрелиз вроде 1.5.0-beta.1 входит в диапазон, только если одно из сравнений в его наборе называет ту же 1.5.0 с меткой предрелиза. Незавершённые версии поэтому по умолчанию остаются вне диапазонов, как объясняет README node-semver. Проверка на этой странице следует этому правилу.

Пример: 1.4.0 с минорным повышением и ^1.3.0 || 2.x

Версия 1.4.0 выше, чем 1.4.0-beta.2, потому что релиз выше своего предрелиза. Минорное повышение даёт 1.5.0. Диапазон ^1.3.0 || 2.x читается как >=1.3.0 <2.0.0-0 или >=2.0.0 <3.0.0-0, и 1.4.0 входит в первый набор.

Ввод Результат
1.4.0 в сравнении с 1.4.0-beta.2 1.4.0 выше, чем 1.4.0-beta.2.
Минорное повышение 1.4.0 1.5.0
1.4.0 в ^1.3.0 || 2.x Версия 1.4.0 входит в диапазон ^1.3.0 || 2.x.

Частые вопросы

Совпадает ли версия 1.0.0+build.1 с версией 1.0.0?

Для порядка и диапазонов да. Часть после + не участвует в приоритете SemVer, поэтому обе версии стоят на одном месте в порядке. Страница всё равно показывает текст сборки, чтобы его было видно.

Почему 1.4.0-beta.2 ниже, чем 1.4.0?

Предрелиз нестабилен и может не выполнять совместимость, которую обещает его номер, поэтому SemVer ставит его раньше релиза с теми же номерами. Значит, 1.4.0-beta.2 идёт перед 1.4.0, а 1.4.0 — перед 1.4.1.

Принимает ли ^1.3.0 версию 2.0.0?

Нет. Диапазон с ^ сохраняет первое слева ненулевое число, поэтому ^1.3.0 означает от 1.3.0 включительно и до 2.0.0 не включая. Добавьте || 2.x, если вторую основную версию тоже нужно принимать, как в примере.

В чём разница между ~1.2 и ^1.2?

Диапазон с ~, то есть ~1.2, означает >=1.2.0 <1.3.0-0, поэтому он принимает изменения патча вроде 1.2.9 и отклоняет 1.3.0. Диапазон с ^, то есть ^1.2, означает >=1.2.0 <2.0.0-0, поэтому он принимает и 1.3.0, и 1.9.9, но не 2.0.0.

Почему диапазон отклоняет 1.5.0-beta.1?

Предрелизы не включаются, если сравнение не называет ту же версию с меткой предрелиза, например >=1.5.0-beta.0. node-semver выбрал такое правило, потому что предрелизы быстро меняются и могут что-то сломать.

Отправляются ли мои версии на сервер?

Нет. Версия, диапазон и сравнение читаются и проверяются в вашем браузере, а ничего из введённого не сохраняется.

Источники

Цифры и текст в последний раз проверены вторник, 10 ноября 2026 г..

Мы используем необходимые cookie, чтобы сайт работал. С вашего согласия Google также использует рекламные cookie, чтобы показывать персонализированную рекламу. Если вы откажетесь, реклама всё равно будет показываться, но не будет персонализированной.