Этот документ описывает установку и использование пакета semver для работы с версиями программного обеспечения. Рассмотрим основные функции пакета на практике, используя npm и командную строку.
Установка пакета semver
Установите пакет semver с помощью npm:
npm install semver
Пакет не имеет зависимостей и небольшой по размеру. После установки в папке node_modules появится директория semver. Файл package.json внутри содержит информацию о пакете, включая имя (semver) и версию (например, 5.5.0). Директория ./bin содержит исполняемый файл semver.
Использование пакета semver в JavaScript
Рассмотрим практическое применение пакета semver в JavaScript. В файле index.js импортируем пакет:
const semver = require('semver');
Далее, используем различные методы semver для работы с версиями.
Проверка валидности версии
Метод semver.valid() проверяет валидность строки версии:
console.log(semver.valid('1.5.2')); // Вывод: 1.5.2
console.log(semver.valid('15to2')); // Вывод: null
console.log(semver.valid('1.5.2-beta.10')); // Вывод: 1.5.2-beta.10
Возвращает версию, если она валидна; иначе — null.
Сравнение версий
Метод semver.gt() сравнивает две версии:
console.log(semver.gt('1.2.3', '4.3.2')); // Вывод: false
console.log(semver.gt('1.2.5', '4.3.2')); // Вывод: true
console.log(semver.gt('5.2.3-beta.10', '5.2.3-beta.5')); // Вывод: true
Возвращает true, если первая версия больше второй, и false в противном случае.
Разбор версии
Метод semver.coerce() преобразует строку версии в объект:
let version = semver.coerce('v3.0.0');
console.log(version); // Вывод: SemVer { major: 3, minor: 0, patch: 0 }
console.log(version.major); // Вывод: 3
Возвращает объект с полями major, minor, patch и другими, содержащими информацию о компонентах версии.
Диапазоны версий
Метод semver.range() создаёт объект диапазона версий, а semver.satisfies() проверяет, удовлетворяет ли версия диапазону:
const constraint = semver.range('^2.22.2'); // Диапазон "^2.22.2"
console.log(semver.satisfies('2.22.3.3', constraint)); // Вывод: true
console.log(semver.satisfies('3.0.0', constraint)); // Вывод: false
const tildeConstraint = semver.range('~2.22.2'); // Диапазон "~2.22.2"
console.log(semver.satisfies('2.22.5', tildeConstraint)); // Вывод: true
console.log(semver.satisfies('2.23.2', tildeConstraint)); // Вывод: false
Символ ^ (caret) означает неизменную major версию, ~ (tilde) — неизменные major и minor версии.
Увеличение версии
Метод semver.inc() увеличивает версию:
console.log(semver.inc('1.4.3', 'patch')); // Вывод: 1.4.4
console.log(semver.inc('1.4.3', 'minor')); // Вывод: 1.5.0
console.log(semver.inc('1.4.3', 'major')); // Вывод: 2.0.0
Разбор сложных версий
Метод semver.parse() разбирает сложные версии, включая pre-release метки:
console.log(semver.parse('1.4.3-alpha.10')); // Вывод: { major: 1, minor: 4, patch: 3, prerelease: [ 'alpha', '10' ] }
Пакет semver предоставляет удобные инструменты для работы с версиями программного обеспечения: проверка валидности, сравнение, создание и проверка диапазонов, а также увеличение версий. Его использование упрощает управление версиями в проектах.