Я наткнулся на это затруднительное положение сегодня относительно семантического управления версиями и диапазона карет логики npm.
Насколько я понимаю, каретка (^
) всегда будет использовать последнюю минорную и / или патч-версию. Что касается версий с основной нулевой версией (0.x.x
), которая на самом деле НЕ .
Документация npm Документы показывают следующий пример диапазона каретки, преобразованный в явный диапазон ...
^1.2.3 := >=1.2.3 <2.0.0
Что имеет смысл, но если сейчас основная версия равна нулю, как такая ...
^0.2.3 := >=0.2.3 <0.3.0
Обратите внимание, что в него будет добавлен только последний патч, а не последний минор, который кажется нелогичным, потому что тогда это будет означать ...
^0.2.3 := ~0.2.3 := >=0.2.3 <0.3.0
Если вы знаете причину этого, я был бы очень признателен за просветление!
Если вы похожи на меня, сбитые с толку этим осознанием, это правда, просто посмотрите сами с этим калькулятором semver .