4 votes

Dites à NPM d'installer dans un autre répertoire

J'ai une situation où, en raison des exigences/opinions d'un projet sur lequel je travaille, je dois garder mon package.json dans un répertoire imbriqué. Voir ci-dessous :

/my-app
  |-- /functions
    |-- /node_modules
    |-- package.json

Le problème que j'ai rencontré à plusieurs reprises est que j'exécute npm i <package> de l'intérieur /my-app et non /my-app/functions sans m'en rendre compte et je finis par passer du temps inutilement à déboguer mon application parce que j'ai installé le paquet au mauvais endroit.

Existe-t-il un moyen de créer un niveau racine package.json qui dit simplement à NPM, "hey, si tu veux installer quelque chose, fais-le dans cet autre répertoire" ? Par exemple :

/my-app
  |-- package.json <-- add this
  |-- /functions
    |-- /node_modules
    |-- package.json

Et peut-être que le package.json dans le répertoire racine ressemblerait à quelque chose comme ceci ?

{
  "installDirectory": "/functions"
}

Cette fonctionnalité existe peut-être déjà, mais je n'ai pas pu la trouver dans la documentation. Le site --prefix est similaire, mais il ne gère pas automatiquement le cas que je décris.

2voto

TheMadHau5 Points 87

Vous pouvez utiliser npm-config :

$ npm config set prefix ./functions

Ou vous pouvez définir NPM_CONFIG_PREFIX (variable d'environnement) à ./functions .

Vous pouvez également ajouter cette ligne à .npmrc :

prefix = ./functions

La documentation de npm :

0voto

tomurlh Points 357

Ne pas définir le chemin dans package.json, mais avec le npm préfixe vous pouvez définir le chemin d'installation de node_modules lors de l'installation de paquets.

eg : $ npm install <package> --prefix ./functions/node_modules

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