Node.js
Come vengono caricati i moduli
Ricerca…
Modalità globale
Se hai installato il nodo usando la directory predefinita, mentre in modalità globale, NPM installa i pacchetti in /usr/local/lib/node_modules
. Se nella shell si digita quanto segue, NPM cercherà, scaricherà e installerà l'ultima versione del pacchetto chiamato sax all'interno della directory /usr/local/lib/node_modules/express
:
$ npm install -g express
Assicurarsi di disporre di diritti di accesso sufficienti per la cartella. Questi moduli saranno disponibili per tutto il processo del nodo che verrà eseguito su quella macchina
Nell'installazione in modalità locale. Npm scaricherà e installerà i moduli nelle attuali cartelle di lavoro creando una nuova cartella denominata node_modules
ad esempio se ti trovi in /home/user/apps/my_app
verrà creata una nuova cartella chiamata node_modules
/home/user/apps/my_app/node_modules
se non è già esistente
Caricamento dei moduli
Quando si fa riferimento al modulo nel codice, il nodo ricerca prima la cartella node_module
all'interno della cartella di riferimento node_module
richiesta Se il nome del modulo non è relativo e non è un modulo principale, il nodo cercherà di trovarlo all'interno della cartella node_modules
nell'attuale directory. Ad esempio, se fai quanto segue, Node proverà a cercare il file ./node_modules/myModule.js
:
var myModule = require('myModule.js');
Se il nodo non riesce a trovare il file, cercherà all'interno della cartella genitore chiamata ../node_modules/myModule.js
. Se fallisce di nuovo, proverà la cartella genitore e continuerà a discendere fino a raggiungere la radice o trovare il modulo richiesto.
Se lo desideri, puoi anche omettere l'estensione .js
, nel qual caso il nodo aggiungerà l'estensione .js
e cercherà il file.
Caricamento di un modulo di cartelle
Puoi usare il percorso di una cartella per caricare un modulo come questo:
var myModule = require('./myModuleDir');
In tal caso, il nodo cercherà all'interno di quella cartella. Il nodo presumerà che questa cartella sia un pacchetto e proverà a cercare una definizione del pacchetto. Quella definizione del pacchetto dovrebbe essere un file denominato package.json
. Se quella cartella non contiene un file di definizione del pacchetto denominato package.json
, il punto di ingresso del pacchetto assumerà il valore predefinito di index.js
, e il Node guarderà, in questo caso, per un file sotto il percorso ./myModuleDir/index.js
.
L'ultima risorsa, se il modulo non si trova in nessuna delle cartelle, è la cartella di installazione del modulo globale.