299 votes

Comment installer les dépendances de package.json dans le répertoire courant à l'aide de npm ?

J'ai une application web : fooapp . J'ai un package.json dans la racine. Je veux installer toutes les dépendances dans un répertoire spécifique. node_modules directory . Comment dois-je m'y prendre ?

Ce que je veux

Disons que j'ai deux widget dépendances. Je veux me retrouver avec une structure de répertoire comme celle-ci :

node_modules/
  widgetA
  widgetB
fooapp/
  package.js
  lib
  ..

Ce que je reçois

quand je cours npm install fooapp/ Je comprends :

node_modules/
  fooapp/
    node_modules/
      widgetA
      widgetB
    package.js
    lib/
    ..
fooapp/
  package.js
  lib/
  ..

npm fait une copie du répertoire de mon application dans le répertoire node_modules et installe les paquets à l'intérieur. un autre répertoire node_modules.

Je comprends que cela a du sens pour l'installation d'un paquet. Mais je ne require() mon application web à l'intérieur de quelque chose d'autre, je l'exécute directement. Je cherche un moyen simple d'installer mes dépendances dans un répertoire node_modules spécifique.

569voto

ireddick Points 1592

En cours d'exécution :

npm install

à l'intérieur du répertoire de votre application (c'est-à-dire là où se trouve le fichier package.json) installera les dépendances. pour votre application, plutôt que de l'installer comme un module, comme décrit ici . Ceux-ci seront placés dans ./node_modules par rapport à votre fichier package.json (c'est en fait un peu plus complexe que cela, alors vérifiez la documentation de npm ici ).

Vous êtes libre de déplacer le répertoire node_modules vers le répertoire parent de votre application si vous le souhaitez, car le mécanisme "require" de node le comprend. Cependant, si vous voulez mettre à jour les dépendances de votre application avec install/update, npm ne verra pas le répertoire 'node_modules' déplacé et créera à la place un nouveau répertoire, à nouveau relatif au package.json.

Pour éviter cela, il suffit de créer un lien symbolique vers les node_modules relocalisés à partir du répertoire de votre application :

ln -s ../node_modules node_modules

20voto

aesede Points 97

Dans mon cas, je dois faire

sudo npm install  

mon projet se trouve dans /var/www, je dois donc également définir les permissions appropriées.

2voto

H.A. Points 166

Exécutez simplement

sudo npm i --save

C'est tout.

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