177 votes

NPM n'installe pas les dépendances des modules

C'est mon package.json pour le module que j'inclus dans le projet parent :

{
  "version": "0.0.1",
  "name": "module-name",
  "dependencies": {
    "express": "3.3.4",
    "grunt": "0.4.1",
    "grunt-contrib-compass": "0.4.0",
    "grunt-contrib-copy": "0.4.1",
    "grunt-contrib-cssmin": "0.4.1",
    "grunt-contrib-jshint": "0.6.3",
    "grunt-contrib-requirejs": "0.4.1",
    "grunt-contrib-uglify": "0.2.2",
    "grunt-contrib-watch": "0.5.1",
    "grunt-express-server": "0.4.1",
    "grunt-karma": "0.4.5",
    "grunt-regex-replace": "0.2.5",
    "request": "2.25.0"
  },
  "scripts": {
    "postinstall": "grunt install"
  }
}

Une chose à noter est que ce module est contenu dans un repo privé et que je l'inclus dans le parent package.json comme : "module-name": "git+ssh://git@myserver:user/module-name.git"

172voto

allprog Points 9189

Il semble que vous ayez rencontré un bogue qui existe depuis un certain temps et qui n'a pas encore été résolu. Il y a plusieurs problèmes ouverts pour ce cas dans le dépôt npm :

Dans la première, on énumère plusieurs solutions de contournement que vous pouvez essayer.

Une solution alternative peut être (un peu bricolée) de lister explicitement les dépendances en tant que dépendances de premier niveau. Cela vous oblige à maintenir la liste, mais en pratique, cela ne doit être fait que très rarement.

138voto

Mohsen Points 16856

J'ai eu un problème très similaire, en supprimant tout node_modules et la réinstallation a fonctionné pour moi. J'ai appris cette astuce sur le site IT Crowd spectacle !

rm -rf node_modules
npm install

58voto

Virat18 Points 651

J'utilise une machine Windows.

  1. J'ai supprimé le dossier node_modules.
  2. D'une manière ou d'une autre, le fichier package.lock.json est créé. J'ai supprimé ce fichier.
  3. Ensuite, npm install.
  4. Construction propre.
  5. Cours.

17voto

Si vous avez hérité de ce code, il se peut que les dépendances et les versions aient été verrouillées et que vous ayez un fichier ./npm-shrinkwrap.json.

si votre dépendance n'est pas répertoriée dans ce fichier, elle ne sera jamais installée avec la commande npm install commandement.

vous devrez installer manuellement les paquets et ensuite exécuter npm shrinkwrap pour mettre à jour le fichier shrinkwrap.

15voto

Caius Points 523

Vérifiez également que le nom de votre paquet est correctement accepté :

FAUX :

{
    "name": "My Awesome Package"
}

CORRECT :

{
    "name": "my-awesome-package-name"
}

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X