TGViewer
Настя Котова // Frontend & Node.js Настя Котова // Frontend & Node.js @startpoint_dev · 1.41K subscribers
Post #46 253
🪄 Разбираемся в семантическом версионировании: как управлять зависимостями в npm без хаоса

Семантическое версионирование, или SemVer, является популярной системой версионирования в мире программирования, особенно в экосистеме Node.js и npm. Эта методология активно применяется для управления версиями пакетов и модулей, чтобы облегчить управление зависимостями и минимизировать риски, связанные с обновлениями. Разберём основные составляющие семантического версионирования:

1️⃣ Основной номер версии (Major version) – увеличивается, если сделаны изменения, ломающие обратную совместимость.
2️⃣ Минорный номер версии (Minor version) – увеличивается, когда добавляются новые возможности, не ломающие существующий функционал.
3️⃣ Патч-версия (Patch version) – увеличивается при внесении исправлений ошибок, которые не затрагивают интерфейсы и не добавляют новых функциональностей.

👉 Пример версии по SemVer: 2.3.1, где 2 – основной номер, 3 – минорный, 1 – патч.

В package.json версии зависимостей можно обозначать следующими способами:

🔹 Точная версия: Указание конкретной версии, например, "react": "18.2.0". Это гарантирует, что будет использована именно эта версия.

🔹 Звездочка (*) или x: Означает использование любой версии в пределах указанной мажорной версии. Например: "react": "18.x"

🔹 Знак тильда (~): Использование тильды, например, "eslint": "~7.2.0", позволяет установить последнюю патч-версию для указанного минорного изменения. Это означает, что будут использованы все последующие патчи к версии 7.2.

🔹 Знак каретки (^): Каретка, например, "webpack": "^4.0.0", позволяет обновляться до последней минорной версии в рамках мажорной версии 4. Так, npm сможет установить любую версию от 4.0.0 до 5.0.0 не включительно.

🔹 Оператор сравнения (>=): Определяет минимально допустимую версию. Например, если указано "lodash": ">=4.17.0" , npm будет устанавливать версию lodash не ниже 4.17.0. Это означает, что при наличии более новых версий, подходящих под эту спецификацию, они будут установлены. Но с этим способом стоит быть осторожнее, так как могут выйти новые мажорные версии, сильно ломающие обратную совместимость.

🔹 Git-репозитории и теги: Можно указать зависимость от конкретного git-commit'a или тега, например, "a-library": "github:myusername/a-library#v1.0.0".

Использование этих подходов позволяет контролировать версии зависимостей в проекте, минимизируя риски поломок из-за неожиданных изменений в используемых библиотеках и модулях. SemVer и npm предоставляют разработчикам гибкие инструменты для управления зависимостями в их проектах.

🔗 Подробнее о семанитическом версионировании можно прочитать в официальной документации. А в этой статье подробно описано использование SemVer в npm.
  • 🔥 2
  • ❤ 1
More from @startpoint_dev
  1. Sep 21, 2026Я к вам с новым анонсом. Этот год я заканчиваю выступлением на HolyJS! Конференция пройдёт…
  2. Sep 14, 2026В прошлый раз разбирали, зачем нужны using и await using и где они работают. Теперь посмот…
  3. Sep 7, 2026В JavaScript регулярно появляются новые возможности, и не про все из них мы вообще узнаём.…
  4. Aug 31, 2026В цикле про рендеринг мы разбирали конвейер: стили, лейаут, отрисовка, композитинг. Всё эт…
  5. Aug 24, 2026Весной мы обсуждали работу с сырыми данными: ArrayBuffer, Buffer в Node.js, SharedArrayBuf…
  6. Aug 17, 2026Когда я готовила материал для цикла про Next.js, то неожиданно для себя узнала, что в нём…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →