Europe/Kyiv
Posts

Peer Dependencies в npm: як було раніше і що змінилось з npm v7

June 13, 2025

Software development illustration
У версіях npm 3–6 peerDependencies використовувались для вказівки залежностей, які пакет очікує від хост-проєкту, але не встановлює самостійно. Наприклад, якщо пакет A мав peerDependency на пакет B, розробник сам мав встановити пакет B у своєму проєкті. Якщо цього не зробити, npm видавав попередження, але не блокував установку. Це могло призводити до помилок під час виконання, якщо потрібна залежність була відсутня або мала несумісну версію. Основні проблеми:
  • Розробники часто ігнорували попередження про peerDependencies.
  • Потрібно було вручну встановлювати залежності, що ускладнювало процес.
  • Конфлікти версій могли залишатись непоміченими до запуску застосунку.
З випуском npm v7 (жовтень 2020) система стала "розумнішою". Тепер npm за замовчуванням автоматично встановлює peerDependencies, якщо вони не вказані в package.json проєкту. Це спрощує розробку, адже:
  • Зменшується ризик помилок через відсутність peerDependencies.
  • npm автоматично підбирає сумісні версії залежностей.
  • Якщо виникають конфлікти, npm видає чіткіші повідомлення, допомагаючи їх вирішити.
Однак, автоматична установка може призвести до неочікуваних залежностей у node_modules, тому важливо перевіряти package-lock.json і тестувати проєкт. Перехід до автоматичної установки peerDependencies в npm v7 значно полегшив життя розробникам, зменшивши ручну роботу та ймовірність помилок. Проте варто залишатись уважним до версій залежностей і їх сумісності, щоб уникнути потенційних проблем у великих проєктах.