У пакетов есть несколько типов зависимостей
Обычные dependencies устанавливаются вместе с пакетом при его установке в какой-либо другой проект (и естественно при установке модулей самого пакета)
devDependencies устанавливаются только при запуске npm i (или yarn) в самом пакете
А peerDependencies ничего не ставят, но помечают, что пакет зависит от библиотеки, которую ты должен поставить сам
Это полезно в случаях, когда пакет зависит от чего-то, что используется в самом проекте. Если к примеру styled-components указали бы реакт просто в dependency, то при его установке у тебя могло оказаться две разных версии реакта.
Одна версия это которая установлена в самом проекте, а вторая - которую использовал бы styled.
В случае с такими либами как реакт - это может (и приводит) к ошибкам, поэтому чтобы в проекте всегда была только одна версия такой зависимости, её выносят в peerDeps