J'ai un paquet de noeud. Lorsque j'exécute npm install
à partir de la racine du paquet, il installe de nombreuses choses, mais affiche ensuite plusieurs messages d'erreur qui ressemblent à ceci:
dépendence unm nw WARN/Utilisateurs/seanmackesey/google_drive/code/explorer/generator/node_modules/findup-sync/node_modules/glob requiert graceful-fs@'~1.2.0 'mais sera chargé
Je dois être confus sur ce que fait exactement npm install
. S'il détecte une dépendance, ne devrait-il pas l'installer? Dans quelles conditions cela me donne-t-il des messages d'erreur de ce type et comment puis-je résoudre les dépendances?
Je pense que c’est parce que la résolution de dépendance est un peu cassée, voir https://github.com/isaacs/npm/issues/1341#issuecomment-20634338
Voici la solution possible:
Vous devez manuellement installer les modules de niveau supérieur contenant les dépendances non résolues: Npm install [email protected]
Re-structurez votre package.json. Placez tous les modules de haut niveau (sert de dépendance pour les autres modules) en bas.
Relancez la commande 'npm install'.
Le problème peut être causé par l'incapacité de npm à télécharger l'intégralité du package en raison d'un délai d'attente dépassé ou d'un autre problème.
Remarque: Vous pouvez également installer manuellement les packages ayant échoué à l'aide de npm install [email protected].
Avant d’exécuter «npm install», il peut être utile de procéder comme suit:
Pourquoi 'enlever node_modules' est parfois nécessaire? Si l'installation d'un module imbriqué échoue lors de l'installation de npm, l'installation suivante de npm ne détectera pas les dépendances imbriquées manquantes.
Si tel est le cas, il suffit parfois de supprimer la dépendance de niveau supérieur de ces modules imbriqués manquants et d'exécuter à nouveau l'installation de npm. Voir
Cela m'est arrivé lorsque le WIFI est tombé en panne pendant un npm install
. Supprimer node_modules
et relancer npm install
le corrige.
J'ai corrigé le problème en utilisant ces lignes de commande
$ rm -rf node_modules/
$ Sudo npm update -g npm
$ npm install
C'est fait!
La mise à niveau de NPM vers la dernière version peut grandement vous aider. La réponse de dule ci-dessus est juste de dire que la gestion des dépendances est un peu cassée, mais il semble que cela concerne principalement les anciennes versions de npm.
La commande npm list
vous donne une liste de tous les node_modules
installés. Lors de la mise à niveau de la version 1.4.2 à la version 2.7.4, de nombreux modules précédemment marqués avec WARN unmet dependency
n'étaient plus notés comme tels.
Pour mettre à jour npm, vous devez taper npm install -g npm
sous MacOSX ou Linux. Sous Windows, j’ai constaté que le re-téléchargement et la réexécution du programme d’installation de nodejs étaient un moyen plus efficace de mettre à jour npm.
Les réponses ci-dessus ne m'ont pas complètement aidé même après la suppression du répertoire node_modules
.
La commande ci-dessous m'a aidé enfin:
npm config set registry http://registry.npmjs.org/
Notez que cela extrait les modules de nœud via une connexion HTTP non sécurisée.
Pour chaque -- UNMET PEER DEPENDENCY
, par ex. -- UNMET PEER DEPENDENCY [email protected]
, installez cette dépendance avec npm install --save [email protected]
jusqu'à ne plus avoir UNMET DEPENDENCIES
.
Bonne chance.
Cela a résolu le problème pour moi:
package.json
, en fonction des erreurs;node_modules
(rm -rf node_modules
);npm install
.Répétez ces étapes jusqu'à ce qu'il n'y ait plus d'erreur.
--dev installer devDependencies de manière récursive (et son exécution pour toujours ...) Comment peut-il aider à résoudre les différences de version?
Vous pouvez essayer de supprimer le dossier node_moduls, puis de nettoyer le cache npm puis de réexécuter 'npm i'.
J'ai rencontré ce problème lors de l'installation des packages de réaction et cela a fonctionné pour moi: npm install --save <package causing this error>
J'ai eu un problème similaire lors de l'installation de la CLI Native React. Je ne savais pas quel répertoire /node_modules
je devais supprimer après avoir lu les réponses ici. J'ai finalement juste couru
npm update -g
et a pu installer le paquet après cela.
Dans mon cas, la mise à jour de npm l'a résolu.
Sudo npm install -g npm
Quelque chose dans le même sens, je voudrais ajouter une autre étape.
Notez que sur npm version> 1.4.9, 'npm install' installe devDependencies. Essayez d’abord de supprimer les modules et le cache existants:
remove node_modules $ rm -rf node_modules/
run $ npm cache clean
Alors essaye:
npm install --dev
npm update --dev
Cela résoudra au moins la résolution de dépendance récursive.
J'essayais de travailler sur un système de déploiement automatisé qui exécute npm install
, de sorte qu'un grand nombre de ces solutions ne fonctionneraient pas dans une fasion automatisée. Je n'étais pas en mesure de supprimer/recréer node_modules/
ni de modifier facilement les versions de Node.js.
J'ai donc fini par exécuter npm shrinkwrap
- en ajoutant le fichier npm-shrinkwrap.json
à mon ensemble de déploiement et en exécutant les installations à partir de là. Cela a réglé le problème pour moi; avec le fichier shrinkwrap comme "assistant", npm semblait être capable de trouver les bons packages et de les installer pour moi. (Shrinkwrap a également d’autres fonctionnalités, mais c’était ce dont j’avais besoin dans ce cas particulier).
J'exécute npm list
et ai installé tous les paquets listés comme UNMET DEPENDENCY
Par exemple:
├── UNMET DEPENDENCY css-loader@^0.23.1
npm install css-loader@^0.23.1
npm install
installera tous les packages à partir de npm-shrinkwrap.json
, mais peut ignorer les packages dans package.json
, s'ils ne sont pas prédéfinis dans l'ancien.
Si votre projet a un npm-shrinkwrap.json
, assurez-vous d’exécuter npm shrinkwrap
pour le régénérer, chaque fois que vous ajoutez, ajoutez/supprimez/modifiez package.json
.
Mise à jour vers 4.0.0
Mettre à jour à 4 est aussi simple que mettre à jour vos dépendances angulaires avec la dernière version et vérifier si vous voulez des animations. Cela fonctionnera pour la plupart des cas d'utilisation.
Sous Linux/Mac:
npm install @angular/{common,compiler,compiler-cli,core,forms,http,platform-browser,platform-browser-dynamic,platform-server,router,animations}@latest TypeScript@latest --save
Sous Windows:
npm install @angular/common@latest @angular/compiler@latest @angular/compiler-cli@latest @angular/core@latest @angular/forms@latest @angular/http@latest @angular/platform-browser@latest @angular/platform-browser-dynamic@latest @angular/platform-server@latest @angular/router@latest @angular/animations@latest TypeScript@latest --save
Ensuite, exécutez la commande ng serve ou npm start que vous utilisez normalement, et tout devrait fonctionner.
Si vous comptez sur Animations, importez la nouvelle BrowserAnimationsModule
à partir de @angular/platform-browser/animations
dans votre racine NgModule
. Sans cela, votre code sera compilé et exécuté, mais les animations déclencheront une erreur. Les importations à partir de @angular/core
sont déconseillées, utilisez les importations à partir du nouveau package.
import { trigger, state, style, transition, animate } from '@angular/animations';.
Faites attention à votre version angulaire, si vous travaillez sous 2.x.x angulaire, vous devrez peut-être passer à 4.x.x
Certaines dépendances doivent être angulaires 4
Voici un tutoriel sur la façon d’installer angular 4 ou de mettre à jour votre projet.