Публикация версий не в порядке

Позволяет ли npm публиковать версии ранее пакета? Единственная документация, которую я мог найти, была на сайте npm :

  

[npm-publish] Не удалось, если имя пакета и комбинация версий уже существуют в указанном реестре.

     

Как только пакет будет опубликован с заданным именем и версией, это конкретное имя и комбинация версий никогда не будут использоваться снова ...

Итак, по этим спецификациям я мог бы теоретически опубликовать v3.2.0-beta до публикация v3.1.0, если ни одна из этих комбинаций с именами уже не существует? (Я предполагаю, что ответ «да», но вы никогда не знаете, не оставлял ли автор то, что они считали очевидным: номера версий должны только увеличиваться.)

Вот почему я спрашиваю. Моя текущая последняя версия - это v3.1.0-beta, и с тех пор я работаю над своей веткой разработки. Но теперь я нахожусь в точке, где v3.2 заблокирован функцией , то есть новые функции не должны добавляться. Поэтому я чувствую, что пришло время продолжить публикацию v3.2.0-beta и начать тестирование на наличие ошибок. Тем не менее, v3.1.0 (стабильный) еще не опубликован, и я не хочу ждать, пока этот выпуск опубликует мою бету v3.2.

Итак, могу ли я опубликовать v3.2.0-beta сейчас, хотя v3.1 все еще находится в бета-версии, а затем на следующей неделе, смогу ли я опубликовать v3.1.0, хотя у него есть более низкий номер версии? Или npm сообщит об ошибке, если я попытаюсь это сделать?

Можете ли вы указать на какие-либо примеры пакетов, которые это сделали? И какая версия тега latest указывает на: самый последний или самый прецедентный (имеющий самый высокий приоритет)?

3 голоса | спросил chharvey 27 +03002017-10-27T01:46:09+03:00312017bEurope/MoscowFri, 27 Oct 2017 01:46:09 +0300 2017, 01:46:09

1 ответ


3

Да, вы можете. Как упоминал johnrsharpe, это позволяет публиковать исправления для старых версий , а также , поскольку одновременно выпускает несколько тестовых версий.

Что считается latest? Из npm publish :

  

[--tag <tag>] Регистрирует опубликованный пакет с указанным тегом, например   что npm install <name>@<tag> установит эту версию. По умолчанию,   npm публикация обновлений и установка npm устанавливает последний тег.

Итак, опубликуем v3.1.0 как latest, просто проверьте эту ветку и npm publish. Опускание --tag установит его в latest.

Чтобы сделать доступным v3.2.0-beta, используйте npm publish --tag beta.

В среде npm обычно применяется --tag next для будущих выпусков, которые станут следующей стабильной версией. Таким образом, вы можете пометить свой v3.2.0 как «следующий», чтобы разработчики, которым нравится край кровотечения, могли подготовиться к , чтобы стал последним.

Подробнее см. dist-tag , особенно какие теги для .

К вашему моменту «номера версий должны только увеличиваться», поскольку semver позволяет (в принципе) произвольную строку следуйте номер версии патча, нет способа узнать, что автор считает «до» между 1.0.0-beta и 1.0.0+exp.sha.5114f85, например.

ответил msanford 27 +03002017-10-27T17:45:03+03:00312017bEurope/MoscowFri, 27 Oct 2017 17:45:03 +0300 2017, 17:45:03

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132