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