Шляпное совпадение может считаться «сломанным», потому что оно не будет обновляться ^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=''
. (Вставьте~
в кавычки, если это то, что вы предпочитаете.) Я лично делаю это и упаковываю вещи в производство.