Для чего нужны зависимости "peerDependencies"?

Я делаю расширение класса, который в свою очередь является расширением другого. Пусть это будут Base и Extension. Мой проект зависит от пакета, содержащего Extension имеющего в peerDependencies пакет с классом Base. Похоже, что не установив в своём проекте зависимость, указанную там, я не могу собрать его в WebPack. Объясните, в каких случаях используется peerDependencies, почему зависимость не указать, например, в dev? Зачем, если зависимость уже имеется, мне нужно создавать новую?


Ответы (1 шт):

Автор решения: DiD

В devDependencies указываются зависимости для программистов, то есть нужные непосредственно для изменения кода или ресурсов. В частности, сюда входят все пакеты, необходимые для компиляции кода.

В dependencies указываются зависимости, обязательные для непосредственно функционирования пакета.

Бывает, разные плагины требуют разные версии одного пакета. Такие пакеты добавляются в peerDependencies. Как правило, npm сам добавляет пакеты с нужными версиями, когда находит разные версии среди вторичных зависимостей или цикличные зависимости. Вручную добавлять их туда бессмысленно. Да и кому захочется ковыряться в чужих кодах.

Источник

→ Ссылка