Семантическое управление версиями с использованием npm

Семантическое управление версиями - это соглашение, используемое для придания значения версиям.

Если в пакетах Node.js есть что-то замечательное, так это то, что все согласились использовать семантическое управление версиями для своей нумерации версий.

Концепция семантического управления версиями проста: все версии имеют 3 цифры:x.y.z.

  • первая цифра - основная версия
  • вторая цифра - второстепенная версия
  • третья цифра - версия патча

Когда вы делаете новый релиз, вы не просто увеличиваете число, как вам нравится, но у вас есть правила:

  • вы обновляете основную версию, когда вносите несовместимые изменения API
  • вы обновляете второстепенную версию, когда добавляете функциональность обратно совместимым образом
  • вы обновляете версию патча, когда делаете исправления ошибок с обратной совместимостью

Соглашение принято во всех языках программирования, и очень важно, чтобы каждыйnpmpackage придерживается его, потому что от этого зависит вся система.

Почему это так важно?

Потому чтоnpmустановить некоторые правила, которые мы можем использовать вpackage.jsonфайлчтобы выбрать, до каких версий он может обновлять наши пакеты, когда мы запускаемnpm update.

В правилах используются эти символы:

  • ^
  • ~
  • >
  • >=
  • <
  • <=
  • =
  • -
  • ||

Давайте подробно рассмотрим эти правила:

  • ^: если вы напишете^0.13.0при бегеnpm updateон может обновляться до патчей и второстепенных выпусков:0.13.1,0.14.0и так далее.
  • ~: если вы напишете~0.13.0, при бегеnpm updateон может обновляться до релизов патчей:0.13.1нормально, но0.14.0не является.
  • >: вы принимаете любую версию выше указанной
  • >=: вы принимаете любую версию, равную или выше указанной вами
  • <=: вы принимаете любую версию, равную или ниже указанной вами
  • <: вы принимаете любую версию ниже указанной
  • =: вы принимаете эту точную версию
  • -: вы принимаете ряд версий. Пример:2.1.0 - 2.6.2
  • ||: комбинируете наборы. Пример:< 2.1 || > 2.6

Вы можете комбинировать некоторые из этих обозначений, например, использовать1.0.0 || >=1.1.0 <1.2.0либо использовать 1.0.0, либо одну версию от 1.1.0 и выше, но ниже 1.2.0.

Есть и другие правила:

  • без символа: вы принимаете только ту конкретную версию, которую указали (1.2.1)
  • latest: вы хотите использовать последнюю доступную версию

Скачать мою бесплатнуюСправочник по Node.js


Дополнительные руководства по узлам: