Как сгенерировать версию-кандидат NPM-релиза
Скажем, я хочу создать предварительную версию NPM.
Изначально у меня есть это:
"version": "0.0.1"
Я старался:
npm version prepatch
npm version prepatch
npm version preminor
npm version preminor
это дало мне это:
v0.0.2-0
v0.0.3-0
v0.1.0-0
v0.2.0-0
Они не выглядят полезными для меня, потому что они всегда увеличивают фактический номер версии, то есть npm version patch
а также npm version prepatch
кажется, не имеет большого значения.
Поэтому мой вопрос - существует ли официальный способ создания альфа / бета-версии с npm в командной строке?
npm version minor-alpha
npm version minor-beta
npm version minor-rc
что-то вроде того?
2 ответа
ОБНОВИТЬ
По состоянию на нпм 6.3.0-next.0
теперь вы можете использовать --preid
при пометке предварительных выпусков version
,
npm version prerelease --preid=next
Ссылка на NPM: https://docs.npmjs.com/cli/version
Оригинальный ответ
К сожалению (и немного иронично) npm не полностью поддерживает все функции semver!
Что вам нужно, так это функция pre-id, найденная в спецификации semver # 9. Я представил PR в npm, но он был отклонен. https://github.com/npm/npm/pull/13794
preids в основном позволяет вам указать id для пререлиза, например:
1.0.0-alpha or 1.0.0-alpha.1
Форрест отклонил это предложение в комментарии, написав это:
После некоторых дальнейших размышлений и обсуждений внутри команды я решил, что это не то изменение, которое собирается получить команда CLI. Работать с пререлизными версиями довольно сложно, и эта особенность вполне достаточно, так как я думаю, что она увеличивает, а не уменьшает количество возможностей для пререлизных версий быть "леггинсом".
Мое беспокойство по поводу гангстеров связано с решением, в semver@^4, сделать так, чтобы пререлизные версии выходили за пределы диапазона, соответствующего для ~ и ^. Если бы изменилось поведение semver, возможно, было бы более разумно иметь возможность выбрать (а затем увеличить) определенный пререлизный идентификатор. После просмотра трудностей сообщества React при использовании предварительных версий с peerDependencies и других взаимосвязанных наборов пакетов становится ясно, что текущее поведение semver по сравнению с предварительными версиями имеет довольно ограниченную полезность. Это означает, что существует существенная вероятность того, что это поведение может измениться.
Тем не менее, я думаю, что пользователям, которые хотят использовать предварительные версии, лучше использовать сторонние инструменты, такие как npmversion, или создавать сценарии, которые используют версию npm "xyz-prealpha.2" (или любую другую, подходящую для вашего варианта использования). Спасибо за ваше время и мои извинения за задержку!
Как он рекомендует, чтобы это работало, вы должны использовать инструмент, который поддерживает полное управление версиями. Я предварительно рекомендую semver package, который можно найти в документации по npm здесь https://docs.npmjs.com/misc/semver
Вы можете использовать:
npm version prerelease --preid=rc
Результат: v1.0.0-rc.0
Похоже:
npm version prerelease
это в основном то, что я ищу, но это не добавляет альфа / бета /rc к версии, оно просто делает это x.y.z-n
,