npm · npm
Le message
npm ERR! ERESOLVE unable to resolve dependency tree
Ce que cela veut dire
Depuis npm 7, les plages de peerDependencies sont imposées, et ce message dit que npm n'a trouvé aucun jeu de versions les satisfaisant toutes en même temps. C'est fréquent quand le paquet que vous installez a une plage de peer qui exclut la version de react ou de typescript déjà présente, surtout juste après une montée de version majeure. Lisez les lignes Found: et Could not resolve: pour voir qui exige quoi, puis déplacez l'un des deux vers une version compatible : c'est le vrai correctif. npm install --legacy-peer-deps installe en ignorant totalement les plages de peer, ce qui vous débloque mais laisse un arbre que les paquets n'ont jamais accepté ; les erreurs d'exécution dues aux versions désaccordées seront pour vous.
Le correctif
npm install --legacy-peer-deps- Émis par
- npm
- npm
- 20
Avec npm, la cause tient dans la première ligne code XXXX et non dans les six dernières lignes npm ERR!, et quand la panne vient de l'arbre de dépendances ou d'une compilation native plutôt que de votre code, supprimer node_modules puis réinstaller en règle environ la moitié.
Lire un message d’erreur
- Lisez à partir de la première ligne. Plus on descend, plus il s’agit des entrailles de l’outil ; la cause est généralement en haut.
- S’il y a un fichier et un numéro de ligne, commencez là — pas la première image de la pile, mais la ligne la plus haute qui nomme un fichier de vous.
- Cherchez le message tel quel, mais retirez d’abord vos chemins et vos noms de variables : c’est cela qui empêche la correspondance.
- La même situation se formule autrement selon la version de l’outil. Si les résultats sonnent faux, ajoutez le numéro de version.
- Avant de coller un correctif, vérifiez ce qu’il jette. Certains sont irréversibles.
Questions fréquentes
Q. Que veut dire « npm ERR! ERESOLVE unable to resolve dependency tree » ?
Depuis npm 7, les plages de peerDependencies sont imposées, et ce message dit que npm n'a trouvé aucun jeu de versions les satisfaisant toutes en même temps. C'est fréquent quand le paquet que vous installez a une plage de peer qui exclut la version de react ou de typescript déjà présente, surtout juste après une montée de version majeure. Lisez les lignes Found: et Could not resolve: pour voir qui exige quoi, puis déplacez l'un des deux vers une version compatible : c'est le vrai correctif. npm install --legacy-peer-deps installe en ignorant totalement les plages de peer, ce qui vous débloque mais laisse un arbre que les paquets n'ont jamais accepté ; les erreurs d'exécution dues aux versions désaccordées seront pour vous.
Q. Comment le corriger ?
npm install --legacy-peer-deps — avant de le lancer, vérifiez plus haut ce que cette commande jette.
Q. Quel outil émet cela ?
npm. Cela relève de npm, et le message compte 8 mots.