web-dev-qa-db-fra.com

Comment gérer l'installation de dépendances entre homologues dans Angular CLI?

Je me suis retrouvé dans un cycle d'erreurs presque sans fin lorsque j'essayais de mettre à jour mes CLI et NPM Angular. Chaque fois que je mets à jour, des messages WARN m'invitent à installer des dépendances entre homologues (voir ci-dessous), mais chaque fois que j'installe une dépendance, je reçois davantage de messages WARN. Y a-t-il une meilleure façon de gérer cette situation ou prend-elle sérieusement des heures?

npm WARN @angular/[email protected] requires a peer of @angular/[email protected] 
but none is installed. You must install peer dependencies yourself.
npm WARN @angular/[email protected] requires a peer of TypeScript@>=2.4.2 
<2.6 but none is installed. You must install peer dependencies yourself.
npm WARN @ng-bootstrap/[email protected] requires a peer of 
@angular/core@^4.0.3 but none is installed. You must install peer 
dependencies yourself.
npm WARN @ng-bootstrap/[email protected] requires a peer of 
@angular/common@^4.0.3 but none is installed. You must install peer 
dependencies yourself.
npm WARN @ng-bootstrap/[email protected] requires a peer of 
@angular/forms@^4.0.3 but none is installed. You must install peer 
dependencies yourself.
npm WARN @schematics/[email protected] requires a peer of @angular-
devkit/[email protected] but none is installed. You must install peer dependencies 
yourself.
npm WARN @schematics/[email protected] requires a peer of @angular-
devkit/[email protected] but none is installed. You must install peer 
dependencies yourself.
npm WARN @schematics/[email protected] requires a peer of @angular-
devkit/[email protected] but none is installed. You must install peer dependencies 
yourself.
npm WARN [email protected] requires a peer of 
@angular/core@^4.0.1 but none is installed. You must install peer 
dependencies yourself.
npm WARN [email protected] requires a peer of 
@angular/common@^4.0.1 but none is installed. You must install peer 
dependencies yourself.
npm WARN [email protected] requires a peer of @angular/platform-
browser@^4.0.0 but none is installed. You must install peer dependencies 
yourself.
npm WARN [email protected] requires a peer of 
@angular/animations@^4.0.1 but none is installed. You must install peer 
dependencies yourself.
npm WARN [email protected] requires a peer of [email protected] - 3 but none 
is installed. You must install peer dependencies yourself.
npm WARN [email protected] requires a peer of popper.js@^1.12.3 but 
none is installed. You must install peer dependencies yourself.
npm WARN [email protected] requires a peer of @angular/core@^2.4.7 || ^4.0.0 
but none is installed. You must install peer dependencies yourself.
npm WARN [email protected] requires a peer of @angular/core@^2.4.0 || 
^4.0.0 but none is installed. You must install peer dependencies yourself.
npm WARN [email protected] requires a peer of @angular/common@^2.4.0 || 
^4.0.0 but none is installed. You must install peer dependencies yourself.
npm WARN [email protected] requires a peer of TypeScript@>=2.4.2 <2.6 but none 
is installed. You must install peer dependencies yourself.
npm WARN optional SKIPPING OPTIONAL DEPENDENCY: [email protected] 
(node_modules\fsevents):
npm WARN notsup SKIPPING OPTIONAL DEPENDENCY: Unsupported platform for 
[email protected]: wanted {"os":"darwin","Arch":"any"} (current: 
{"os":"win32","Arch":"x64"})

Je sais que je dois faire quelque chose de mal, mais je suis nouveau à Angular.

52
tommy

Les avertissements de dépendance des pairs peuvent, le plus souvent, être ignorés. La seule fois où vous voudrez agir, c'est si la dépendance entre homologues est totalement absente ou si la version d'une dépendance entre homologues est supérieure à la version que vous avez installée.

Prenons cet avertissement comme exemple:

npm WARN @ angular/animations @ 5.2.1 requiert un homologue de @ angular/core @ 5.2.1 mais aucun n'est installé. Vous devez installer vous-même les dépendances entre homologues.

Avec Angular, vous souhaitez que les versions que vous utilisez soient cohérentes dans tous les packages. S'il existe des versions incompatibles, modifiez les versions de votre package.json et exécutez npm install afin qu'elles soient toutes synchronisées. J'ai tendance à conserver mes versions pour Angular dans la version la plus récente, mais vous devez vous assurer que vos versions sont cohérentes quelle que soit la version de Angular que vous souhaitez utiliser (ce qui peut ne pas être le cas récent).

Dans une situation comme celle-ci:

npm WARN [email protected] requiert un homologue de @ angular/core @ ^ 2.4.0 || ^ 4.0.0 mais aucun n'est installé. Vous devez installer vous-même les dépendances entre homologues.

Si vous utilisez une version de Angular supérieure à 4.0.0, vous ne rencontrerez probablement aucun problème. Rien à faire à ce sujet alors. Si vous utilisez une version Angular sous la version 2.4.0, vous devez créer votre version. Mettez à jour package.json et exécutez npm install ou exécutez npm install pour la version dont vous avez besoin. Comme ça:

npm install @angular/[email protected] --save

Vous pouvez omettre le --save si vous exécutez npm 5.0.0 ou version ultérieure, cette version enregistre le package dans la section des dépendances de package.json automatiquement.

Dans cette situation:

npm WARN facultatif DEPENDANCE OPTIONNELLE DE SKIPPING: [email protected] (node_modules\fsevents): npm WARN notsup SAUVETAGE DEPENDANCE OPTIONNELLE: Plateforme non prise en charge pour [email protected]: voulue {"os": "darwin", "Arch", "any" "} (actuel: {" os ":" win32 "," Arch ":" x64 "})

Vous utilisez Windows et fsevent requiert OSX. Cet avertissement peut être ignoré.

J'espère que cela vous aide et amusez-vous à apprendre Angular!

58
R. Richards

Vous pouvez ignorer les avertissements de dépendance entre pairs en utilisant l'indicateur --force avec Angular cli lors de la mise à jour des dépendances.

ng update @angular/cli @angular/core --force

Pour une liste complète des options, consultez la documentation: https://angular.io/cli/update

1
Wojtek Dmyszewicz