Risposte:
Puoi usare l' --prefixopzione:
mkdir -p ./install/here/node_modules
npm install --prefix ./install/here <package>
I pacchetti verranno quindi installati in ./install/here/node_modules. Il mkdirè necessario dal momento che NPM potrebbe altrimenti scegliere uno già esistente node_modulesdirectory più in alto nella gerarchia. (Vedi la documentazione di npm sulle cartelle .)
npm install(senza il nome del pacchetto)? L'ho preso direttamente, ma poi npm cerca package.jsonnel {prefix}. Quello che mi prefiggo è anche quello di essere in grado di far entrare il packages.jsonroot del progetto e allo stesso tempo installare tutti i pacchetti {project root}/{project webroot}.
npm install, ma --prefixsembra una soluzione migliore, se non causasse una ricorsione.
Nella documentazione è dichiarato: Utilizzare l'opzione di prefisso insieme con l'opzione globale :
Il prefisso config imposta per impostazione predefinita la posizione in cui è installato il nodo. Sulla maggior parte dei sistemi, questo è / usr / local . Su Windows, questa è la posizione esatta del file binario node.exe. Sui sistemi Unix, è di un livello superiore, poiché il nodo è in genere installato su {prefisso} / bin / node 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 si trova già in un pacchetto.
(Enfasi da loro)
Quindi nella tua directory principale puoi installare
npm install --prefix <path/to/prefix_folder> -g
e installerà la node_modulescartella nella cartella
<path/to/prefix_folder>/lib/node_modules
requireinstallare pacchetti a livello globale, vero?
A partire dalla versione npm 3.8.6, è possibile utilizzare
npm install --prefix ./install/here <package>
per installare nella directory specificata. NPM crea automaticamente una node_modulescartella anche quando node_modulesesiste già una directory nella gerarchia superiore. Puoi anche avere un package.jsonnella directory corrente e quindi installarlo nella directory specificata usando l' --prefixopzione:
npm install --prefix ./install/here
A partire da npm 6.0.0, è possibile utilizzare
npm install --prefix ./install/here ./
per installare 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' --prefixopzione. Si risolve secondo la documentazione npm sulle cartelle , solo quando npm installviene utilizzato senza l' --prefixopzione.
Can't install <current directory>: Missing package name
package.jsonfile in./install/here