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