Как избавиться от ошибки unable to resolve dependency tree ?
С выходом версии npm 7+ изменился подход к установке peerDependencies, если раньше они игнорировались, то теперь npm пытается поставить их.
Если на момент установки модуля вы имеете установленную зависимость (например React), но ее версия не совпадает с той, которая указана у устанавливаемого модуля, то npm бросит ошибку
npm ERR! code ERESOLVE
npm ERR! ERESOLVE unable to resolve dependency tree
...Решение
Можно установить пакет с флагом --legacy-peer-deps, он был добавлен в версии npm 7, чтобы обеспечить поведение, которое было у npm c 4-6 версии.
Он говорит npm чтобы тот игнорировал установку peerDependencies и продолжил установку без них
Решение, вариант №1
npm i somepackage --legacy-peer-deps
Решение, вариант №2
Если хотим по умолчанию использовать такое поведение - Указать в файлике .npmrc в корне проекта (если его нет, то создать)
legacy-peer-deps=trueПолезные ссылки
- StackOverflow - подробно рассматриваются несколько вариантов решения
- Официальная дока по резолву конфликтов peerDependencies
Как понять куда глобально (-g) устанавливаются модули?
npm root -g