web-dev-qa-db-fra.com

Comment installer automatiquement les dépendances entre homologues npm?

Par exemple, lorsque j'installe Angular2:

npm install --save angular2
[email protected] /Users/doug/Projects/dougludlow/temp
├── [email protected] 
├── UNMET PEER DEPENDENCY es6-promise@^3.0.2
├── UNMET PEER DEPENDENCY es6-shim@^0.33.3
├── UNMET PEER DEPENDENCY [email protected]
├── UNMET PEER DEPENDENCY [email protected]
└── UNMET PEER DEPENDENCY [email protected]

npm WARN [email protected] requires a peer of es6-promise@^3.0.2 but none was installed.
npm WARN [email protected] requires a peer of es6-shim@^0.33.3 but none was installed.
npm WARN [email protected] requires a peer of [email protected] but none was installed.
npm WARN [email protected] requires a peer of [email protected] but none was installed.
npm WARN [email protected] requires a peer of [email protected] but none was installed.

Existe-t-il un indicateur magique que je peux transmettre à npm qui installera également les dépendances entre homologues? Je n'ai pas réussi à en trouver une ... C'est fastidieux de copier et de coller manuellement les dépendances entre homologues et de s'assurer que j'ai les bonnes versions.

En d'autres termes, je préférerais ne pas avoir à faire:

npm install --save [email protected] es6-promise@^3.0.2 es6-shim@^0.33.3 [email protected] [email protected] [email protected]

Quelle est la meilleure façon?

229
Douglas Ludlow

L'installation automatique des dépendances entre homologues a été explicitement supprimée avec npm 3, car elle pose plus de problèmes qu'elle n'a tenté de résoudre. Vous pouvez lire à ce sujet ici par exemple:

Donc non, pour les raisons données, vous ne pouvez pas les installer automatiquement à partir de npm 3.

147
migg

Je l'ai résolu en réécrivant package.json avec les valeurs exactes que les avertissements concernaient:

npm WARN [email protected] requires a peer of es6-shim@^0.33.3 but none was installed.

package.json: "es6-shim": "^ 0.33.3",

npm WARN [email protected] requires a peer of [email protected]

package.json: "reflect-metadata": "0.1.2",

Delete node_modules directory

npm install
31
MrLehiste

Le code de triche utile dans ce scénario et quelques autres ...

DE DÉPENDANCE DES PAIRS UNMET @ angulaire/commune @ 4.0.2

├── UNMET PEER DEPENDENCY @ angular/compiler @ 4.0.2

├── UNMET PEER DEPENDENCY @ angular/compiler-cli @ 4.0.2

DE DÉPENDANCE DES PAIRS UNMET @ angular/core @ 4.0.2

DE DÉPENDANCE DES PAIRS UNMET @ angular/forms @ 4.0.2

├── UNMET PEER DEPENDENCY @ angular/http @ 4.0.2

├── UNMET PEER DEPENDENCY @ angular/platform-browser @ 4.0.2

├── UNMET PEER DEPENDENCY @ angular/platform-browser-dynamic @ 4.0.2>

  1. copier/coller votre erreur dans votre éditeur de code.
  2. Mettez en surbrillance une partie indésirable avec votre curseur. Dans ce cas, '' DÉPENDANCE DES PAIRS UNMET '
  3. Appuyez sur commande + d plusieurs fois.
  4. Appuyez sur effacez deux fois. (Appuyez sur espace si vous avez accidentellement sélectionné "DE UNMET PEER DEPENDENCY".
  5. Appuyez une fois. Ajouter 'npm install'
  6. Appuyez une fois. Ajouter '--save
  7. Copiez vos affaires dans la cli et lancez

npm install @ angular/common @ 4.0.2 @ angular/compilateur @ 4.0.2 @ angular/compiler-cli @ 4.0.2 @ angular/noyau @ 4.0.2 @ angular/formes @ 4.0.2 @ angular/http @ 4.0 .2 @ angular/platform-browser @ 4.0.2 @ @ angular/platform-browser-dynamic @ 4.0.2 --save

17
zoomlar

Le projet npm-install-peers détectera les homologues et les installera.

À partir de _v1.0.1_, il ne prend pas en charge l'écriture automatique vers _package.json_, ce qui résoudrait essentiellement notre besoin ici.

S'il vous plaît ajouter votre soutien pour émettre en vol: https://github.com/spatie/npm-install-peers/issues/4

12
deepelement