Шляпное совпадение может считаться «сломанным», потому что оно не будет обновляться ^0.1.2до 0.2.0. Когда появляется программное обеспечение, используйте 0.x.yверсии, и совпадение будет совпадать только с последней изменяющейся цифрой ( y). Это сделано специально. Причина в том, что в то время как программное обеспечение развивается, API быстро меняется: в один прекрасный день у вас есть эти методы, а в другой день у вас есть эти методы, а старые исчезли. Если вы не хотите нарушать код для людей, которые уже используют вашу библиотеку, вы идете и увеличиваете основную версию: например, 1.0.0-> 2.0.0-> 3.0.0. Таким образом, к тому моменту, когда ваше программное обеспечение будет на 100% готово и полнофункционально, оно будет похоже на версию, 11.0.0и это не будет иметь особого смысла, а на самом деле выглядит запутанным. Если вы, с другой стороны, используете 0.1.x->0.2.x-> 0.3.xверсии, то к тому времени, когда программное обеспечение будет окончательно выполнено на 100% и полнофункционально, оно будет выпущено как версия, 1.0.0и это означает, что «Этот выпуск является долгосрочным сервисом, вы можете продолжить работу и использовать эту версию библиотеки в своей работе. код, и автор не будет менять все завтра или в следующем месяце, и он не откажется от пакета ".
Правило 0.x.yтаково : используйте управление версиями, когда ваше программное обеспечение еще не достигло зрелости, и выпускайте его, увеличивая среднюю цифру, когда ваш общедоступный API-интерфейс изменяется (поэтому люди, у которых ^0.1.0не будет 0.2.0обновления, не нарушат их код). Затем, когда программное обеспечение становится более зрелым, выпускайте его под 1.0.0и увеличивайте крайнюю левую цифру каждый раз, когда ваш публичный API изменяется (поэтому люди, у которых ^1.0.0не будет 2.0.0обновления, и он не сломает свой код).
Given a version number MAJOR.MINOR.PATCH, increment the:
MAJOR version when you make incompatible API changes,
MINOR version when you add functionality in a backwards-compatible manner, and
PATCH version when you make backwards-compatible bug fixes.
npm config set save-prefix=''. (Вставьте~в кавычки, если это то, что вы предпочитаете.) Я лично делаю это и упаковываю вещи в производство.