Nell’ultimo post abbiamo:
- creato un progetto con Node.js,
- installato un modulo con
npm
(nel progetto locale)
Oggi proveremo a installare un modulo globale
Articolo precedente:
Un modulo si può installare in almeno tre modi diversi, come in questi tre esempi:
npm install modulo npm install --save-dev modulo npm install -g modulo
- il primo comando installa il modulo (come dipendenza) nella cartella locale del progetto (già visto e provato). Ad esempio, se si installa
react-native-cli
, questo dipenderà dal moduloreact-native
. Se queste dipendenze non sono soddisfatte non è possibile compilare ed eseguire il programma del progetto. Le dipendenze sono generate automaticamente nel filepackages.json
- il secondo comando installa il modulo come dipendenza per lo sviluppo. Ad esempio,
eslint
è un modulo utile per rilevare errori in compilazione, ma non è una vera dipendenza che è usata solo durante la fase di compilazione del progetto. Viene installato sempre nella cartella locale. Le dipendenze sono salvate automaticamente nel filepackages.json
- il terzo comando installa il modulo (come dipendenza) in modo globale. Cioè tutti i progetti potranno usare la stessa versione del modulo. La cartella di installazione potrebbe essere
/usr/local
oppure qualsiasi altro luogo dove è installato Node.js. Inoltre, questo tipo di installazione consente di usare il modulo anche direttamente dal terminale (a patto che esso contenga qualche script direttamente eseguibile)1
Articolo di approfondimento:
Quando si usa npm
non è raro imbattersi in problemi di dipendenze tra moduli di terze parti, per colpa dei conflitti di versione, o moduli abbandonati. In questi casi si ottengono messaggi di warning nel terminale causati dalla gestione degli intervalli delle versioni delle dipendenze.
Questo è un esempio di output di npm
che segnala questi problemi (da ignorare?)
added 12 packages, and audited 68 packages in 1s
4 packages are looking for funding
run `npm fund` for details
1 high severity vulnerability
To address all issues, run:
npm audit fix
Run `npm audit` for details.
Per controllare se abbiamo installato tutte le librerie necessarie ad un progetto, proviamo npm ls
$ nvm use node $ cd progetto $ npm ls --include=dev
Se hai installato Node.js usando nvm i moduli globali sono nella cartella locale dell’utente
Se hai installato Node.js usando un gestore apt, rpm, pacman (o simile), potresti avere questo errore
usando l’utente root react-native viene installato insieme a 700 altri moduli
- https://manpages.debian.org/unstable/npm/npm-global.5.en.html [↩]