Réponses:
Vous pouvez utiliser l' --prefix
option:
mkdir -p ./install/here/node_modules
npm install --prefix ./install/here <package>
Le ou les packages seront ensuite installés dans ./install/here/node_modules
. Le mkdir
est nécessaire car npm pourrait sinon choisir un node_modules
répertoire déjà existant plus haut dans la hiérarchie. (Voir la documentation npm sur les dossiers .)
npm install
(sans nom de package)? J'ai tiré cela directement, mais alors npm cherche package.json
dans le {prefix}
. Ce que je vise aussi, c'est de pouvoir laisser le packages.json
dans la racine du projet et en même temps installer tous les packages dans {project root}/{project webroot}
.
npm install
, mais cela --prefix
semble être une meilleure solution, si cela ne provoquait pas une récursivité.
Dans la documentation, il est indiqué: Utilisez l'option préfixe avec l'option globale :
La configuration par défaut du préfixe est l'emplacement où le nœud est installé. Sur la plupart des systèmes, il s'agit de / usr / local . Sous Windows, il s'agit de l'emplacement exact du binaire node.exe. Sur les systèmes Unix, c'est un niveau supérieur, car le nœud est généralement installé dans {prefix} / bin / node plutôt que {prefix} /node.exe .
Lorsque l' indicateur global est défini, npm installe des éléments dans ce préfixe. Lorsqu'il n'est pas défini, il utilise la racine du package actuel ou le répertoire de travail actuel s'il ne se trouve pas déjà dans un package.
(Souligné par eux)
Donc, dans votre répertoire racine, vous pouvez installer avec
npm install --prefix <path/to/prefix_folder> -g
et il installera le node_modules
dossier dans le dossier
<path/to/prefix_folder>/lib/node_modules
require
installer les packages globalement, n'est-ce pas?
Depuis la version 3.8.6 de npm, vous pouvez utiliser
npm install --prefix ./install/here <package>
à installer dans le répertoire spécifié. NPM crée automatiquement un node_modules
dossier même lorsqu'un node_modules
répertoire existe déjà dans la hiérarchie supérieure. Vous pouvez également avoir un package.json
dans le répertoire en cours, puis l'installer dans le répertoire spécifié en utilisant l' --prefix
option:
npm install --prefix ./install/here
Depuis npm 6.0.0, vous pouvez utiliser
npm install --prefix ./install/here ./
pour installer le package.json dans le répertoire courant vers le répertoire "./install/here". Il y a une chose que j'ai remarqué sur Mac: cela crée un lien symbolique vers le dossier parent dans le répertoire node_modules. Mais cela fonctionne toujours.
REMARQUE: NPM honore le chemin que vous avez spécifié via l' --prefix
option. Il se résout selon la documentation npm sur les dossiers , uniquement lorsqu'il npm install
est utilisé sans l' --prefix
option.
Can't install <current directory>: Missing package name
package.json
fichier dans./install/here