У меня есть личная библиотека npm. Мы используем подход semvar и версии наших проектов через:
npm version {patch, minor, major}
Так что пользователи могут установить его через:
npm install mylib@1.5
npm install mylib@2.3.7
...
Теперь я столкнулся с желаемым вариантом использованияпредоставить разработчикам ранний доступ к нестабильной версии моей библиотеки.
Кажется, что dist-tag
должно соответствовать моим потребностям. Поэтому я хочу выпустить beta
dist-tag, чтобы разработчики могли установить это нестабильное состояние через
npm install mylib@beta
Так что в моей нестабильной ветке я попытался опубликовать бета-ветку, но получил ошибку:
npm publish --tag beta
npm ERR! code EPUBLISHCONFLICT
npm ERR! publish fail Cannot publish over existing version.
npm ERR! publish fail Update the 'version' field in package.json and try again.
npm ERR! publish fail
npm ERR! publish fail To automatically increment version numbers, see:
npm ERR! publish fail npm help version
Это сбивает меня с толку.
Я хочу во-первых избежать столкновения с версией semvar. Я ожидал, что это только опубликует его текущее состояние в виде дистрибутива npm в хранилище. (И чтобы я мог добавить к этому имени тега все, что захочу, поскольку он является мета-указателем.)
Только после того, как моя ветвь станет стабильной и объединится с основной ветвью, я намеревался поднять версию (* 1021). *, в данном случае).
Так что просто для того, чтобы опробовать его, я поднял версию до того, как опубликовал бета-тег, но также публикует только что созданную минорную версию, делая ее доступной раньше времени выпуска, чтоЯ не хочу, я хочу, потому что теперь люди могут прыгнуть в мою нестабильную будущую версию.
Я не понимаю, как dist-tags и версии пакета должны использоваться вместе с версиями semvar и почему япотребуется также повысить версию тега.