Que sont les dépendances homologues dans un module Node?

Une explication simple du champ peerDependencies dans le fichier package.json

Dans certainespackage.jsonfichiers, vous pourriez voir quelques lignes comme ceci:

{
  //...
  "peerDependencies": {
    "libraryName": "1.x"
  }
}

Vous avez peut-être déjà vudependenciesetdevDependencies, mais nonpeerDependencies.

dependenciessont les packages dont dépend votre projet.

devDependenciessont les packages nécessaires pendant la phase de développement. Dites un cadre de test commePlaisanterou d'autres utilitaires commeBabelouESLint.

Dans les deux cas, lorsque vous installez un package, ses dépendances et devDependencies sont automatiquement installées parnpm.

peerDependenciessont différents. Ils ne sont pas installés automatiquement.

Lorsqu'une dépendance est répertoriée dans un package en tant que peerDependency,il n'est pas installé automatiquement. Au lieu de cela, le code qui inclut le package doit l'inclure comme sa dépendance.

npmvous avertira si vous coureznpm installet il ne trouve pas cette dépendance.

Exemple: disons packageacomprend la dépendanceb:

a/package.json

{
  //...
  "dependencies": {
    "b": "1.x"
  }
}

Paquetbà son tour veut un paquetcen tant que peerDependency:

b/package.json

{
  //...
  "peerDependencies": {
    "c": "1.x"
  }
}

Dans le package A, il faut donc ajoutercen tant que dépendance, sinon lorsque vous installez le packageb, npm vous donnera un avertissement (et le code échouera probablement à l'exécution):

a/package.json

{
  //...
  "dependencies": {
    "b": "1.x",
    "c": "1.x"
  }
}

Les versions doivent être compatibles, donc si un peerDependency est répertorié comme2.x, vous ne pouvez pas installer1.xou une autre version. Tout suitgestion des versions sémantique.

Téléchargez mon gratuitManuel de Node.js


Plus de didacticiels sur les nœuds: