Как пользоваться: Калькулятор semver
- Сравнение: введите две версии, чтобы увидеть, какая из них новее и почему (учитываются prerelease и build-метаданные).
- Повышение: введите текущую версию и нажмите нужный тип изменения, чтобы получить следующую версию. Она копируется автоматически.
- Проверка диапазона: введите диапазон npm, например
^1.2.0,~1.2,1.xили>=1.2 <2, и список версий. - Прочитайте объяснение простым языком и посмотрите, какие версии подходят под диапазон.
Семантическое версионирование: MAJOR.MINOR.PATCH
| Часть | Увеличивается, когда… | Пример |
|---|---|---|
| MAJOR | вы вносите несовместимые изменения | 1.4.2 → 2.0.0 |
| MINOR | вы добавляете функции с обратной совместимостью | 1.4.2 → 1.5.0 |
| PATCH | вы исправляете ошибки с обратной совместимостью | 1.4.2 → 1.4.3 |
| Prerelease | вы публикуете тестовую версию | 2.0.0-beta.1 |
| Build-метаданные | вы помечаете сборку (при сравнении не учитываются) | 1.4.2+sha.5114f85 |
Шпаргалка по диапазонам npm
| Диапазон | Значение | Допускает |
|---|---|---|
^1.2.3 | Совместим с 1.2.3 | >=1.2.3 <2.0.0 |
^0.2.3 | Для 0.x минорная версия играет роль «мажорной» | >=0.2.3 <0.3.0 |
~1.2.3 | Только обновления patch | >=1.2.3 <1.3.0 |
1.x / 1 | Любая версия 1.y.z | >=1.0.0 <2.0.0 |
1.2.3 - 2.3 | Диапазон через дефис | >=1.2.3 <2.4.0 |
>=1.2 <1.5 || 2.x | Любой из наборов | 1.2.0–1.4.x или 2.x |
Prerelease-версии подходят под диапазон, только если в том же наборе есть компаратор с prerelease для той же комбинации major.minor.patch. Поэтому ^1.2.0 не подходит под 1.3.0-beta.1, а ^1.3.0-beta.0 подходит. Так нестабильные версии не устанавливаются по ошибке.
Диапазоны хранятся в вашем package.json. Чтобы определить следующую версию по коммитам, используйте Генератор changelog, а для тегирования релиза — Генератор Git-команд.
Также ищут как: диапазон версий npm, caret vs tilde, семантическое версионирование, повышение версии, сравнение версий, semver prerelease, npm semver tester.
Инструменты, которые хорошо сочетаются с Калькулятор semver
- Генератор GitHub Actions — Выберите стек, триггеры и шаги, и вы получите закомментированный файл .github/workflows/ci.yml — установка, кеш, линтинг, тесты, сборка, матрица версий и необязательный деплой на GitHub Pages, Vercel или в реестр контейнеров.
- Конвертер систем счисления — Введите число в любой системе счисления и сразу увидите его во всех остальных.
- Сравнение текстов — Вставьте исходную и изменённую версии, чтобы увидеть добавленные, удалённые и изменённые строки рядом — с подсветкой точно изменённых слов внутри каждой строки.
- Валидатор YAML — Вставьте файл Docker Compose, манифест Kubernetes, workflow GitHub Actions или любой YAML, чтобы найти ошибку, поймать типичные ловушки и получить аккуратно отформатированную версию.
Часто задаваемые вопросы
Можно ли использовать это как тестер semver?
В чём разница между ^ и ~ в package.json?
^1.2.3 допускает обновления minor и patch (до 2.0.0, не включая её). ~1.2.3 допускает только обновления patch (до 1.3.0). Для версий 0.x знак ^ строже: ^0.2.3 допускает только 0.2.x.