Comment puis-je installer les dépendances de package.json dans le répertoire courant en utilisant NPM

StackOverflow https://stackoverflow.com/questions/8367031

Question

J'ai une application web: fooapp . J'ai un package.json à la racine. Je veux installer toutes les dépendances dans un node_modules directory spécifique. Comment puis-je faire?

Ce que je veux

Disons que j'ai deux dépendances de widget. Je veux finir avec une structure de répertoire comme ceci:

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

Qu'est-ce que je reçois

quand je lance npm install fooapp/ je reçois ceci:

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

NPM fait une copie de mon répertoire app dans le node_modules dir et installe les paquets dans une autre node_modules répertoire.

Je comprends cela a un sens pour l'installation d'un package. Mais je ne require() mon application web à l'intérieur de quelque chose d'autre, je lance directement. Je suis à la recherche d'un moyen simple d'installer mes dépendances dans un répertoire spécifique node_modules.

Était-ce utile?

La solution

Exécution:

npm install

de l'intérieur de votre répertoire d'applications (à savoir où se trouve package.json) installera les dépendances pour votre application, plutôt que de l'installer en tant que module, comme décrit ici . Ceux-ci seront placés dans ./node_modules par rapport à votre fichier package.json (il est en fait un peu plus complexe que cela, afin de vérifier les MNP docs ).

Vous êtes libre de déplacer le node_modules dir au répertoire parent de votre application si vous voulez, parce que le mécanisme de « besoin » de noeud comprend. Toutefois, si vous souhaitez mettre à jour vos dépendances d'applications avec l'installation / mise à jour, NPM ne verra pas les « délocalisés node_modules » et au lieu de créer un nouveau répertoire, de nouveau par rapport à package.json.

Pour éviter cela, il suffit de créer un lien symbolique vers les node_modules délocalisés à partir de votre application dir:

ln -s ../node_modules node_modules

Autres conseils

Dans mon cas, je dois faire

sudo npm install  

mon projet est dans / var / www donc je dois aussi définir des autorisations appropriées.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top