npm - installer les dépendances pour un package dans un dossier différent?

142

J'ai la structure de répertoires suivante:

/some_project
    source.js
    package.json

Je voudrais installer les dépendances pour some_project. Je sais que je pourrais cd dans some_project puis exécuter npm install

Mais je me demandais si c'est possible sans changer de répertoire? Quelque chose comme

npm install some_project/package.json 
Florin
la source

Réponses:

344

Vous pouvez utiliser la npm install <folder>variante avec l' --prefixoption. Dans votre scénario, le dossier et le préfixe seront les mêmes:

npm --prefix ./some_project install ./some_project
coudy
la source
4
C'est la vraie réponse à la question. Merci @coudy.
G.Ghez
5
BTW, il crée un etcdossier vide dans la destination, c'est un bug connu github.com/npm/npm/pull/7249
Michael Radionov
8
Merci pour cette réponse. Y a-t-il plus de clarté quant à savoir si le deuxième ./some_projectest nécessaire?
Aron
12
le second ./some_projectn'est pas obligatoire
JRJurman
4
Cela ne semble pas fonctionner pour moi sur Windows 10. Il installe les dépendances dans le répertoire actuel et met simplement un lien symbolique dans le sous-dossier.
Herohtar
45

Mise à jour: puisque l' --prefixoption existe, je vote maintenant pour la réponse de @ coudy à cette question. Réponse originale ci-dessous:

Non, npmsera toujours installé dans le répertoire courant ou, avec -g, dans l'ensemble du système node_modules. Vous pouvez en quelque sorte accomplir cela avec un sous-shell, qui n'affectera pas votre répertoire actuel:

(cd some_project && npm install)

Les parenthèses le font fonctionner dans un sous - shell .

Linus Thiel
la source
C'est finalement ce que j'ai fait - cd some_project && npm install. Merci
Florin
1
Existe-t-il un équivalent pour Windows?
Meligy
@Meligy vous pouvez utiliserSTART /D "%my_dir%" /I /WAIT npm install
Everspace
1

Sous Windows 10, je ne pouvais pas me rendre --prefixau travail, alors je devais l' cdexécuter.

cd PATH_TO_FOLDER && npm install 
Yoannes Geissler
la source