Как сгенерировать версию-кандидат 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 будет генерировать 0.0.0-x версия

Похоже:

npm version prerelease

это в основном то, что я ищу, но это не добавляет альфа / бета /rc к версии, оно просто делает это x.y.z-n,

Другие вопросы по тегам