Come installare npm in una directory specificata?

È ansible specificare una directory di destinazione quando si esegue npm install ?

Puoi usare l’opzione --prefix :

 mkdir -p ./install/here/node_modules npm install --prefix ./install/here  

I pacchetti verranno quindi installati in ./install/here/node_modules . L’ mkdir è necessario poiché npm potrebbe altrimenti scegliere una directory node_modules già esistente più in alto nella gerarchia. (Vedi la documentazione di npm sulle cartelle .)

Nella documentazione è indicato: Utilizzare l’opzione prefisso insieme all’opzione globale :

La configurazione del prefisso è predefinita per il percorso in cui è installato il nodo. Sulla maggior parte dei sistemi, questo è / usr / local . Su Windows, questa è la posizione esatta del binario node.exe. Sui sistemi Unix, ha un livello superiore, poiché il nodo viene generalmente installato su {prefisso} / bin / nodo anziché su {prefisso} /node.exe .

Quando viene impostato il flag globale , npm installa le cose in questo prefisso. Quando non è impostato, utilizza la radice del pacchetto corrente o la directory di lavoro corrente se non già in un pacchetto.

(Enfasi da loro)

Quindi nella tua directory radice con cui puoi installare

 npm install --prefix  -g 

e installerà la cartella node_modules nella cartella

 /lib/node_modules 

A partire dalla versione 3.8.6 di npm, è ansible utilizzare

 npm install --prefix ./install/here  

per installare nella directory specificata. NPM crea automaticamente la cartella node_modules anche quando esiste già una directory node_modules nella gerarchia superiore. Puoi anche avere un package.json nella directory corrente e quindi installarlo nella directory specificata usando l’opzione --prefix :

 npm install --prefix ./install/here 

A partire da npm 6.0.0, è ansible utilizzare

 npm install --prefix ./install/here ./ 

per installare il file package.json nella directory corrente nella directory “./install/here”. C’è una cosa che ho notato su Mac che crea un collegamento simbolico alla cartella principale all’interno della directory node_modules. Ma funziona ancora.

NOTA: NPM rispetta il percorso specificato tramite l’opzione --prefix . Si risolve secondo la documentazione di npm sulle cartelle , solo quando viene utilizzata l’ npm install senza l’opzione --prefix .