npm - installa dipendenze per un pacchetto in una cartella diversa?


142

Ho la seguente struttura di directory:

/some_project
    source.js
    package.json

Vorrei installare le dipendenze per some_project. So che potrei cd in some_project e quindi eseguire npm install

Ma mi chiedevo se fosse possibile senza cambiare la directory? Qualcosa di simile a

npm install some_project/package.json 

Risposte:


344

È possibile utilizzare la npm install <folder>variante con l' --prefixopzione. Nel tuo scenario la cartella e il prefisso saranno gli stessi:

npm --prefix ./some_project install ./some_project

4
Questa è la vera risposta alla domanda. Grazie @coudy.
G. Ghez,

5
A proposito, crea una etccartella vuota nella destinazione, è un bug noto github.com/npm/npm/pull/7249
Michael Radionov,

8
Grazie per questa risposta C'è più chiarezza sulla necessità del secondo ./some_project?
Aron,

12
il secondo ./some_projectnon è richiesto
JRJurman

4
Questo non sembra funzionare per me su Windows 10. Installa le dipendenze nella directory corrente e inserisce semplicemente un collegamento simbolico nella sottocartella.
Herohtar,

45

Aggiornamento: poiché --prefixesiste l' opzione, ora voto per la risposta di @ coudy a questa domanda. Risposta originale di seguito:

No, npmverrà sempre installato nella directory corrente o, con -g, nel nodo_moduli di sistema. Puoi in qualche modo farlo con una subshell, che non influirà sulla tua directory corrente:

(cd some_project && npm install)

Le parentesi lo fanno funzionare in una subshell .


Questo è quello che ho fatto alla fine: cd some_project && npm install. Grazie
Florin,

1
Esiste un equivalente di questo per Windows?
Meligy,

@Meligy puoi usareSTART /D "%my_dir%" /I /WAIT npm install
Everspace

1

Su Windows 10 non riuscivo --prefixa lavorare, quindi dovevo cded eseguirlo.

cd PATH_TO_FOLDER && npm install 
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.