web-dev-qa-db-fra.com

l'installation de npm manque de modules

Avant de pouvoir exécuter gulp dans mon projet, je dois exécuter npm install. Cela fonctionne sauf sur mon ordinateur, car j'obtiens l'erreur suivante:

Error: Cannot find module 'socket.io'
    at Function.Module._resolveFilename (module.js:338:15)
    at Function.Module._load (module.js:280:25)
    at Module.require (module.js:364:17)
    ...

Je peux résoudre ce problème avec

$> npm install socket.io

Maintenant, quand je fais à nouveau la commande d'installation, je reçois

Error: Cannot find module 'di'
    ...

Lorsque j'installe di et réexécute la commande d'installation, j'obtiens:

Error: Cannot find module 'log4js'

Je pense que cela pourrait durer très longtemps. Des suggestions sur ce qui se passe ici et comment y remédier?

16
Jeanluca Scaljeri

J'ai rencontré le même problème lors du démarrage d'une application MEAN et j'ajoute chaque dépendance manquante avec npm install packageName --save n'était pas une option donc je suis tombé sur npm-install-missing qui m'a sauvé la vie :)

Installation

npm install -g npm-install-missing

Usage

npm-install-missing
16
Rafael Rocha

Fonctionnement npm install installera toutes les dépendances spécifiées dans package.json. On dirait que vous avez pas mal de dépendances qui ne sont pas définies de cette façon. Utilisation npm install packageName --save et npm ajouteront le package à votre package.json.

13
jgillich

J'utilise la même version de npm/node. Parfois, c'est comme si npm était "perdu". Ce que je suggère, c'est:

  • rm de vos modules de noeud (au moins celui qui est concerné)
  • npm cache clean
  • exécutez "npm install" plusieurs fois, jusqu'à ce que toutes les dépendances soient résolues et qu'aucun message ne s'affiche
7
benek

Il semble que gulp ait besoin des dépendances de "karma" (socket.io ,di ,log4js...) vous devrez donc exécuter:

npm install karma

donc juste exécuter cette commande a résolu le problème, et tout devrait être bon, la même chose se produit avec grunt également pour certaines raisons.

2