Для чего нужны зависимости "peerDependencies"?
Я делаю расширение класса, который в свою очередь является расширением другого. Пусть это будут Base и Extension.
Мой проект зависит от пакета, содержащего Extension имеющего в peerDependencies пакет с классом Base.
Похоже, что не установив в своём проекте зависимость, указанную там, я не могу собрать его в WebPack.
Объясните, в каких случаях используется peerDependencies, почему зависимость не указать, например, в dev? Зачем, если зависимость уже имеется, мне нужно создавать новую?
Ответы (1 шт):
В devDependencies указываются зависимости для программистов, то есть нужные непосредственно для изменения кода или ресурсов. В частности, сюда входят все пакеты, необходимые для компиляции кода.
В dependencies указываются зависимости, обязательные для непосредственно функционирования пакета.
Бывает, разные плагины требуют разные версии одного пакета. Такие пакеты добавляются в peerDependencies. Как правило, npm сам добавляет пакеты с нужными версиями, когда находит разные версии среди вторичных зависимостей или цикличные зависимости. Вручную добавлять их туда бессмысленно. Да и кому захочется ковыряться в чужих кодах.