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 étape peut vous aider.
Disons que vous avez cette erreur.
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.
Cela signifie que vous avez installé la version 4.2.0 de packageA, mais packageB@3.3.0 a besoin de la version 3.xx de pakageA. ( explication de ^ )
Vous pouvez donc résoudre cette erreur en rétrogradant packageA vers 3.xx, mais vous ne souhaitez généralement pas rétrograder le package.
La bonne nouvelle est que, dans certains cas, packageB ne suit tout simplement pas packageA et que le mainteneur de packageB s'efforce de faire passer la dépendance des pairs de packageA à 4.xx
Dans ce cas, vous pouvez vérifier s'il existe une version supérieure de packageB qui nécessite la version 4.2.0 de packageA dans le npm ou le github.
Par exemple, allez à la page de publication
Souvent, vous pouvez trouver des changements de rupture sur la dépendance comme celui-ci.
packageB v4.0.0-beta.0
BREAKING CHANGE
package: requires packageA >= v4.0.0
Si vous ne trouvez rien sur la page de publication, accédez à la page de publication et recherchez le problème par mot-clé comme peer
. Vous pouvez trouver des informations utiles.
À ce stade, vous avez deux options.
1) Mettre à niveau vers la version souhaitée
2) Laisser une erreur pour le moment, attendre la sortie de la version stable.
Si vous choisissez l'option 1:
Dans de nombreux cas, la version n'a pas de latest
tag donc pas stable. Vous devez donc vérifier ce qui a changé dans cette mise à jour et vous assurer que rien ne se cassera.
Si vous choisissez l'option 2:
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 tester soigneusement s'il ne casse rien.
Enfin, si vous voulez savoir pourquoi vous devez faire manuellement une telle chose, ce lien explique bien.