Как можно решить npm UNMET PEER ЗАВИСИМОСТИ?
Я нахожусь на Windows 10, Node версии 5.6.0 и npm версии 3.6.0. Пытаюсь установить angular-material и mdi на мою рабочую папку. npm install angular-material mdi выдает следующие сообщения об ошибках:
+ - angular@1.5.0
+ - НЕЗАВИСИМАЯ ОТ СВОЙСТВА ЗВУКА angular-animate@^1.5.0
+ - НЕЗАВИСИМАЯ ОТНОСИТЕЛЬНО ЗНАЧЕННОЙ СВЯЗИ angular-aria@^1.5.0
+ - angular-material@1.0.6
+ - НЕЗАВИСИМАЯ ОТНОШЕНИЕ К СООТВЕТСТВУЮЩЕЙ СРЕДЕ
npm WARN enoent ENOENT: нет такого файла или каталога, откройте "C:\Users\xxxxx\Desktop\ngClassifieds\package.json"
npm WARN angular-material@1.0.6 требует однорангового узла angular-animate@^1.5.0, но ни один из них не был установлен.
npm WARN angular-material@1.0.6 требует однорангового узла angular-aria@^1.5.0, но ни один не был установлен.
npm WARN angular-material@1.0.6 требует однорангового узла angular-messages@^1.5.0, но ни один из них не был установлен.
Как решить эту проблему, чтобы установить угловой материал и установить mdi?
17 ответов
npm больше не устанавливает одноранговые зависимости, поэтому вам нужно установить их вручную, просто сделайте npm install
на нужном deps, а затем попробуйте установить основной снова.
Ответить на комментарий:
это верно в том сообщении, в котором говорится, какие deps вам не хватает
UNMET PEER DEPENDENCY angular-animate@^1.5.0 +--
UNMET PEER DEPENDENCY angular-aria@^1.5.0 +-- angular-material@1.0.6 +
UNMET PEER DEPENDENCY angular-messages@^1.5.0 `-- mdi@1.4.57`
Так что вам нужно npm install angular angular-animate angular-aria angular-material angular-messages mdi
UNMET PEER DEPENDENCY
Выдается ошибка, когда зависимости одного или нескольких модулей указаны в package.json
Файл не встречен. Внимательно проверьте предупреждения и обновите package.json
файл с правильными версиями зависимостей.
Тогда беги
rm -rf node_modules/
npm cache clean
npm install
Это установит все необходимые зависимости правильно.
В моем случае все зависимости уже были. Пожалуйста, обновите NPM в этом случае, так как он мог быть разбит. Это решило мою проблему.npm установить -g npm
Этот ответ не распространяется на все случаи, но если вы не можете решить эту проблему, просто набрав npm install
, эти шаги могут помочь.
Допустим, вы получили эту ошибку.
UNMET PEER DEPENDENCY packageA@4.2.0
npm WARN packageB@3.3.0 requires a peer of packageA@^3.1.0 but none was installed.
Это означает, что вы установили версию 4.2.0 пакета A, но для packageB@3.3.0 требуется версия 3.xx пакета pakageA. ( объяснение ^)
Таким образом, вы можете устранить эту ошибку, понизив пакет A до 3.xx, но обычно вы не хотите понижать пакет.
Хорошей новостью является то, что в некоторых случаях packageB просто не поспевает за packageA, и сопровождающий packageB изо всех сил пытается поднять равноправную зависимость packageA до 4.xx
В этом случае вы можете проверить, существует ли более высокая версия packageB, которая требует версию 4.2.0 packageA в npm или github.
Например, Перейти на страницу релиза
Часто вы можете найти серьезные изменения в зависимости, как это.
packageB v4.0.0-beta.0
BREAKING CHANGE
package: requires packageA >= v4.0.0
Если вы не нашли ничего на странице релиза, перейдите на страницу проблемы и выполните поиск по ключевому слову, например peer
, Вы можете найти полезную информацию.
На данный момент у вас есть два варианта.
1) Обновите до нужной версии
2) Оставьте пока ошибку, дождитесь выпуска стабильной версии.
Если вы выбираете вариант 1:
Во многих случаях версия не имеет latest
тег при этом не стабилен. Поэтому вы должны проверить, что изменилось в этом обновлении, и убедиться, что ничего не сломается.
Если вы выбираете вариант 2:
Если обновление pakageA с версии 3 до 4 является тривиальным, или если сопровождающий pakageB еще не тестировал версию 4 pakageA, но говорит, что это не должно быть проблемой, вы можете оставить ошибку.
В обоих случаях лучше тщательно проверить, не сломано ли оно.
Наконец, если вы хотите знать, почему вы должны делать это вручную, эта ссылка хорошо объясняет.
npm-install-peers работал для меня.
npm install -g npm-install-peers
Одной из наиболее вероятных причин этой ошибки может быть то, что вы определили более старую версию в вашем package.json. Чтобы решить эту проблему, измените версии в package.json, чтобы они соответствовали тем, на которые жалуется npm.
После этого запустите npm install и вуаля!!
Данный ответ не всегда работает. Если это не решит вашу проблему. Убедитесь, что вы также используете правильный символ в вашем package.json
, Это очень важно, чтобы исправить эту головную боль. Например:
warning " > @angular/compiler-cli@5.2.7" has incorrect peer dependency "typescript@>=2.4.2 <2.7".
warning " > tsickle@0.25.6" has incorrect peer dependency "typescript@>=2.4.2 <2.6".
Так что мой машинопись должна быть между 2.4.2 и 2.6, верно?
Так что я изменил мою библиотеку машинописи от использования "typescript": "^2.7"
использовать "typescript": "^2.5"
, Кажется правильным?
Неправильно.
^
означает, что вы в порядке с npm, используя "typescript": "2.5"
или же "2.6"
или же "2.7"
так далее...
Если вы хотите узнать, что ^
а также ~
это значит: см. в чем разница между тильдой (~) и кареткой (^) в package.json?
Также вы должны убедиться, что пакет существует. Может быть, нет "typescript": "2.5.9"
посмотрите номера пакетов. Чтобы быть в безопасности, просто удалите ~
или ^
если вы не хотите читать, что они имеют в виду.
Итак, я долго боролся, пытаясь понять это. Вот ядерный вариант, когда вы исчерпали все остальные пути..
- Создайте новую папку на вашем компьютере.
- Скачайте совершенно новую установку angular - я использовал это руководство: https://coursetro.com/posts/code/55/How-to-Install-an-Angular-4-App
- Запустите его, убедитесь, что он работает
- Затем установите ваши зависимости по одному из вашего файла package.json
- Запустите его после того, как каждый установлен
Когда вы закончите, и это все еще работает, импортируйте ваш реальный код в этот новый проект. Исправьте любые ошибки компиляции новой версии угловых причин.
Вот что это сделало для меня... 1 час переделок против 6 часов попыток выяснить, что WTF был неправильным... Жаль, что я сделал это таким образом, чтобы начать..
Сегодня доступен Angular 2 rc.7, и у меня была похожая проблема с rxjs@5.0.0-beta.12
UNMET PEER ЗАВИСИМОСТЬ.
Если вы, как и я, просто заменили @angular/...rc.6
в @angular/...rc.7
- этого не достаточно. Потому что, например, @angular/router
не имеет rc.6
версия.
В этом случае лучше просмотрите package.json в разделе Быстрый старт
Эта проблема также может возникать при попытке исправить уязвимость системы безопасности в зависимости.
Вот что я сделал: проверил установленные зависимости.
npm audit
Если есть исправления, в большинстве случаев проблема будет решена с помощью следующего:
npm audit fix
Некоторые проблемы будут иметь , SEMVER WARNINGпереход по ссылке даст нам подсказку о том, как выполнить ручную проверку и / или что делать дальше.
Проведя немного больше исследований, я обнаружил эту команду:
npm upgrade
Кажется
npm audit fix
не учитывал обновление зависимостей одноранговых узлов и запуск
npm upgrade
исправит неудовлетворенные зависимости одноранговых узлов. Теперь проверьте, решили ли мы проблему, запустив:
npm list
Это даст нам все зависимости для нашего проекта и предупредит нас о любых неудовлетворенных ошибках peer deps. Обновление по большей части на самом деле лучше, чем оставаться на более старой версии пакета, который вы используете, если у вас нет проблемы с уязвимостью безопасности.
npm install
тоже жизнеспособный вариант.
Вы получите это предупреждение, если используете npm v6 или более раннюю версию. После npm v7.0 команда разработчиков npm заявила, что они будут автоматически устанавливать одноранговые зависимости все вместе. Таким образом, теперь вы не хотите устанавливать зависимости сверстников вручную.
Вы можете установить npm v7.0 с помощью этой команды,
npm install -g npm@7
Узнайте больше о npm v7.0 из этого сообщения блога, опубликованного в блоге Github.
Если возникла ошибка, связанная с зависимостью, например «не удалось разрешить зависимость», выполните следующие действия:1.) Очистка кэша npm --force
npm i --force
2.) Если вышеуказанный шаг не сработал, попробуйте установить более низкую версию. версию узла, а затем снова используйте первый шаг.
Прежде чем устанавливать новые пакеты, убедитесь, что вы закрыли все запущенные экземпляры командной строки.
В моем проекте было два экземпляра командной строки: один для студии Prisma, а другой для Next.js. Я забыл закрыть второй экземпляр, что и вызвало ошибку.
Если вы хотите сохранить текущую версию angular, вы можете посетить эту проверки программусовместимости версий, чтобы проверить, какая версия angular-material лучше всего подходит для вашей текущей версии angular. Вы также можете проверить одноранговые зависимости angular-material, используя совместимость angular-material .
Я удалилpackage-lock.json
иnode_module
, переключитесь наYARN
и это решило проблему
Я получал следующую ошибку: предупреждение «> » имеет неудовлетворенную одноранговую зависимость « [email protected][email protected] ».
Похоже, что основная причина заключалась в том, что у меня был установлен пакет «react-native» помимо «npx react-native», который поставляется с установкой узла.
Как только я удалил пакет «react-native», я смог успешно использовать синтаксис «npx react-native init packagename».
Вы можете проверить документацию по реакции, касающуюся вышеуказанной проблемы, на сайте реакции: https://reactnative.dev/docs/environment-setup.
Вы можете решить, установив зависимости UNMET глобально.
пример: npm install -g @angular/common@4.4.6
установить каждый по одному. это сработало для меня.