web-dev-qa-db-fra.com

Comment résoudre l'avertissement npm UNMET PEER DEPENDENCY?

Je suis sur Windows 10, avec le noeud 5.6.0 et npm 3.6.0. J'essaie d'installer angular-material et mdi dans mon dossier de travail. npm installe angular-material mdi errors avec:

+-- [email protected]

+-- UNMET PEER DEPENDENCY angular-animate@^1.5.0

+-- UNMET PEER DEPENDENCY angular-aria@^1.5.0

+-- [email protected]

+-- UNMET PEER DEPENDENCY angular-messages@^1.5.0 `-- [email protected]

npm WARN enoent ENOENT: no such file or directory, open
'C:\Users\xxxxx\Desktop\ngClassifieds\package.json' 

npm WARN [email protected] requires a peer of
angular-animate@^1.5.0 but none was installed. 

npm WARN [email protected] requires a peer of angular-aria@^1.5.0
but none was installed. 

npm WARN [email protected] requires a peer of
angular-messages@^1.5.0 but none was installed.

Comment résoudre ce problème pour obtenir le matériel AngularJS et MDI installé?

166
Reza

npm n’installe plus les dépendances entre homologues; vous devez donc les installer manuellement. Il suffit de faire un npm install sur les dépôts nécessaires, puis d’essayer d’installer à nouveau la principale.


Répondre au commentaire: 

il est juste dans ce message, il dit qui dépend vous manque

UNMET PEER DEPENDENCY angular-animate@^1.5.0 +-- 
UNMET PEER DEPENDENCY angular-aria@^1.5.0 +-- [email protected] +
UNMET PEER DEPENDENCY angular-messages@^1.5.0 `-- [email protected]` 

Donc, vous devez npm install angular angular-animate angular-aria angular-material angular-messages mdi

160
Datsik

L'erreur UNMET PEER DEPENDENCY est renvoyée lorsque les dépendances d'un ou plusieurs modules spécifiés dans le fichier package.json ne sont pas satisfaites. Vérifiez attentivement les avertissements et mettez à jour le fichier package.json avec les versions correctes des dépendances.

Puis courir

rm -rf node_modules/
npm cache clean
npm install

Cela installera toutes les dépendances requises correctement.

57
JayKrish

Dans mon cas, toutes les dépendances étaient déjà là. Veuillez mettre à jourNPMdans ce cas car il pourrait avoir été bloqué. Cela a résolu mon problème.

npm install -g npm
20
Anuj Sharma

npm-install-peers a travaillé pour moi.

npm install -g npm-install-peers
14
alexoviedo999

Une des causes les plus possibles de cette erreur pourrait être que vous avez défini une version plus ancienne dans votre package.json. Pour résoudre ce problème, modifiez les versions dans le package.json afin qu'elles correspondent à celles sur lesquelles npm se plaint.

Une fois cela fait, lancez npm install et le tour est joué !!. 

5
Thomas Mwania

Ok, j'ai longtemps lutté pour essayer de comprendre. Voici l'option nuclear, lorsque vous avez épuisé tous les autres moyens .. 

  • Créez un nouveau dossier sur votre ordinateur.
  • Téléchargez une nouvelle installation de angular - J'ai utilisé ce guide: https://coursetro.com/posts/code/55/How-to-Install-an-Angular-4-App
  • Exécutez-le, assurez-vous que cela fonctionne
  • Puis installez vos dépendances une à une à partir de votre fichier package.json
  • Lancez-le après chaque installation

Lorsque vous avez terminé et que cela fonctionne toujours, importez votre code dans ce nouveau projet. Corrigez les erreurs de compilation de la nouvelle version des causes angulaires. 

C’est ce qui m’a fait pour moi .. 1 heure de retravail contre 6 heures d’essayer de comprendre wtf était une erreur .. voudrais bien que je l’ai fait de cette façon pour commencer ..

3
user230910

Aujourd'hui disponible Angular 2 rc.7, et j'ai eu un problème similaire avec [email protected] UNMET PEER DEPENDENCY.

Si vous, comme moi, remplacez simplement @angular/...rc.6 par @angular/...rc.7 - ce n'est pas suffisant. Parce que, par exemple, @angular/router n'a pas de version rc.6.

Dans ce cas, il vaut mieux consulter package.json in Démarrage rapide

2
ktretyak

Cette réponse ne s'applique pas à tous les cas, mais si vous ne pouvez pas résoudre l'erreur en tapant simplement npm install , Cette procédure peut vous aider.

Disons que vous avez cette erreur.

UNMET PEER DEPENDENCY [email protected]

npm WARN [email protected] requires a peer of packageA@^3.1.0 but none was installed.

Cela signifie que vous avez installé la version 4.2.0 de packageA, mais que [email protected] nécessite la version 3.x.x de pakageA. ( explication de ^ )

Vous pouvez donc résoudre cette erreur en rétrogradant le package A vers 3.x.x, mais vous ne voulez généralement pas rétrograder le package.
La bonne nouvelle est que, dans certains cas, packageB ne suit tout simplement pas packageA et le responsable de packageB s'efforce de faire passer la dépendance de packageA à ses pairs en 4.x.x.
Dans ce cas, vous pouvez vérifier s’il existe une version supérieure de packageB nécessitant la version 4.2.0 de packageA dans npm ou github. 

Par exemple, allez à la page de publication  enter image description here

Souvent, vous pouvez trouver un changement radical en ce qui concerne la dépendance.

packageB v4.0.0-beta.0

BREAKING CHANGE
package: requires packageA >= v4.0.0

Si vous ne trouvez rien sur la page de publication, allez à la page de publication et recherchez le problème par mot clé tel que peer. Vous pouvez trouver des informations utiles.

 enter image description here

À ce stade, vous avez deux options. 

1) Mettez à niveau vers la version de votre choix
2) Laissez l'erreur pour le moment, attendez que la version stable soit publiée.

Si vous choisissez l'option1:
Dans de nombreux cas, la version n'a pas latesttag donc pas stable. Vous devez donc vérifier ce qui a changé dans cette mise à jour et vous assurer que rien ne va casser. 

Si vous choisissez l'option2:
Si la mise à niveau de pakageA de la version 3 à 4 est triviale ou si le responsable de pakageB n’a pas encore testé la version 4 de pakageA mais dit que cela ne devrait pas poser de problème, vous pouvez envisager de laisser l’erreur.

Dans les deux cas, il est préférable de vérifier soigneusement si rien ne se casse. 

Enfin, si vous voulez savoir pourquoi vous devez le faire manuellement, ce lien explique bien.

0
toshi

La réponse donnée ne fonctionnera pas toujours. Si cela ne résout pas votre problème. Assurez-vous que vous utilisez également le symbole correct dans votre package.json. Ceci est très important pour résoudre ce mal de tête. Par exemple:

warning " > @angular/[email protected]" has incorrect peer dependency "TypeScript@>=2.4.2 <2.7".
warning " > [email protected]" has incorrect peer dependency "TypeScript@>=2.4.2 <2.6".

Donc, mon TypeScript doit être compris entre 2.4.2 et 2.6 non?

J'ai donc changé ma bibliothèque TypeScript, qui utilisait "TypeScript": "^2.7", pour utiliser "TypeScript": "^2.5". Semble correct? 

Faux. 

Le ^ signifie que vous pouvez utiliser npm avec "TypeScript": "2.5" ou "2.6" ou "2.7" etc ... 

Si vous voulez savoir ce que signifient les ^ et ~, voir: Quelle est la différence entre le tilde (~) et le caret (^) dans le package.json?

Aussi, vous devez vous assurer que le paquet existe. Peut-être qu'il n'y a pas de "TypeScript": "2.5.9" rechercher les numéros de colis. Pour être vraiment sûr, supprimez le ~ ou le ^ si vous ne voulez pas lire ce qu’ils veulent dire.

0
Samuel Thompson