web-dev-qa-db-fra.com

Que signifie "une dépendance homologue non satisfaite" signifie-t-il lors de l'installation d'un package avec fil?

J'ai une nouvelle installation de yarn (via npm install yarn -g) et essayé d’installer quelques paquets avec

yarn add vue-loader babel-loader style-loader css-loader file-loader webpack

J'ai reçu quelques avertissements lors de l'installation, tels que

warning "[email protected]" has unmet peer dependency "vue-template-compiler@^2.0.0".

Qu'est-ce que cela signifie exactement, et plus précisément: pourquoi yarn n'installe-t-il pas ces dépendances lui-même? (si elles sont nécessaires)

Une question jumelle (environ npm) sur le même sujet donne quelques réponses suggérant de i) mettre à jour npm ii) supprimer node_modules car il y a un bogue dans npm à propos de la gestion des dépendances.

Quel est le statut de tels avertissements dans yarnEst-ce vraiment un avertissement (= quelque chose que je peux jeter)? Je ne peux pas les supprimer (la construction webpack échoue) et je dois les installer manuellement. Dans le même temps, un certain nombre de dépendances ont été installées, je ne comprends donc pas pourquoi certaines d'entre elles ont été omises (alors qu'elles sont installables manuellement)

34
WoJ

Qu'est-ce qu'une dépendance entre pairs?

Here est une lecture utile sur les types de dépendance, et here est une information sur les dépendances entre homologues, mais pour résumer:

Dépendance : Une bibliothèque/package que votre projet doit exécuter.
Dépendance des pairs : Utilisée pour indiquer une bibliothèque/un package auquel votre projet sera connecté.

Le paquet vue-loader a une dépendance des pairs sur vue-template-compiler - vue-loader agit comme un plugin pour vue-template-compiler

Pourquoi ne sont-ils pas installés par défaut

Les dépendances entre pairs ont été automatiquement installées jusqu’à npm @ (quel fil a suivi). Cela a été arrêté en raison d'un comportement souvent déroutant. Par exemple, l'installation d'un autre plug-in avec une exigence conflictuelle entraînerait une erreur.

Nous allons également changer le comportement de peerDependencies dans npm @ 3. Nous ne téléchargerons plus automatiquement la dépendance des pairs. Au lieu de cela, nous vous avertirons si la dépendance entre homologues n'est pas déjà installée. Cela nécessite que vous résolviez les conflits peerDependency vous-même, manuellement, mais à long terme, cela devrait rendre moins probable que vous vous retrouviez dans une situation délicate avec les dépendances de vos packages. [13 février 2015]

26
Leighton