Cos’è l’NPM e come usarlo
Installazione locale, globale, aggiornamento

Tempo di lettura: 4 minuti
Cos'è l'NPM di Node.js? Guida su come usare il Node Package Manager

Moduli Node.js e NPM

Che tu ci creda o no, il “cuore” di Node è veramente piccolo. Fondamentalmente, Node.js non fa molto… tuttavia offre enormi possibilità grazie alle sue estensioni!

Queste estensioni sono chiamate moduli.

Ci sono migliaia di moduli che offrono diverse funzionalità: dalla gestione dell’upload di file, ai database MySQL o a Redis, attraverso framework, sistemi di template e la gestione della comunicazione in tempo reale con i visitatori.

C’è praticamente tutto ciò che si può sognare e ogni giorno compaiono nuovi moduli!

Continuiamo il discorso iniziano nel precedente tutorial per capire come vengono gestiti i moduli e vedremo che è possibile crearne di nuovi facilmente. Parleremo di NPM (Node Package Manager), uno strumento essenziale che permette di scaricare facilmente tutti i moduli dalla community Node.js.

Usare l’NPM per installare i moduli

Nell’introduzione ho parlato di NPM: Node Package Manager. Ovvero, un modo di installare nuovi moduli sviluppati dalla comunità. Tutti questi moduli sono pubblicati nel sito web: http://npmjs.org!

cos-e-npm-come-funziona-node-package-manager
Sito ufficiale dell’NPM

Immagina che NPM sia un po’ come il comando apt-get di Linux, lo conosci?

Consente di scaricare e installare i programmi con un semplice comando!

In più l’NPM regola le dipendenze tra i vari moduli. Questo significa che, se un modulo ha bisogno di un altro modulo per funzionare, l’NPM lo scaricherà automaticamente!

La community è molto attiva, ci sono migliaia e migliaia di moduli disponibili e ci si aspetta milioni di caricamenti ogni settimana.

Sono sicuro che troverai sempre quello che stai cercando!

Come dice il sito web NPM, installare nuovi moduli è semplice come caricare i propri. Si tratta di una gran parte del successo di Node.js.

Come posso trovare un modulo nell’NPM? È come cercare un ago in un pagliaio!

In realtà è abbastanza facile. Ti mostrerò alcuni modi per trovare i moduli!

Cercare un modulo

Se sai cosa stai cercando, il sito web NPM ti permette di effettuare ricerche, ma l’NPM è prima di tutto un comando!

È possibile effettuare una ricerca nella console, in questo modo:

npm search postgresql

Avvierà una ricerca per tutti i moduli che hanno qualcosa a che fare con il database PostgreSQL.

npm-cercare-moduli-da-installare
Esempio di ricerca tramite il comando: npm search

Installazione di un modulo

Un modulo è facilmente installabile, ti basta posizionarti nel terminale all’interno della cartella del tuo progetto e scrivere:

npm install nomemodulo

Il modulo verrà installato localmente, ovvero soltanto all’interno di quel progetto specifico.

Se hai più progetti, dovrai rilanciare il comando per ciascuno. Questo consente di utilizzare diverse versioni dello stesso modulo a seconda dei progetti.

Facciamo un test!

Stiamo per installare il modulo markdown, che converte il codice markdown in HTML.

npm install markdown

NPM scaricherà automaticamente l’ultima versione del modulo e lo posizionerà in una sottocartella node_modules. Quindi verifica di essere nella cartella che contiene il tuo progetto Node.js prima di lanciare questo comando!

npm-install-errore-no-such-file-or-directory-package.json-mancante
Errore nell’installazione del pacchetto, file package.json mancante

Nota bene: ogni progetto si contraddistiggue dalla presenza di un file chiamato package.json, se hai questo file nella tua cartella puoi lanciare il comando precedente. Se invece non hai il file package.json ti darà un errore come questo:

In questo caso puoi lanciare il comando per inizializzare un nuovo progetto, ovvero:

npm init -y
npm-init-inizializzare-un-progetto-nodejs
Usa npm init per inizializzare un progetto Node.js

E adesso puoi provare a rilanciare il comando di installazione del modulo markdown.

npm-init-inizializzare-un-progetto-nodejs
Pacchetto installato correttamente!

Una volta fatto questo, avrai accesso alle funzioni offerte dal modulomarkdown‘. Puoi leggere la documentazione del modulo per sapere come utilizzarlo. In questo caso ci dirà che dobbiamo chiamare l’oggetto markdown all’interno del modulo e che possiamo chiamare la funzione toHTML per convertire Markdown in HTML.

Proviamo questo:

var markdown = require('markdown').markdown;

console.log(markdown.toHTML('Un paragrafo **markdown**!'));

Questo verrà visualizzato nella console:

<p>Un paragrafo <strong>markdown</strong>!</p>

Non spaventarti per (‘markdown’).markdown. La documentazione del modulo ci dice che le funzioni sono nell’oggetto “markdown“, quindi cercheremo questo oggetto direttamente all’interno del modulo.

Installazione locale e installazione globale

NPM installa i moduli localmente per ogni progetto, motivo per cui crea sottocartelle node_modules all’interno del progetto.

Se si utilizza lo stesso modulo in 3 diversi progetti, verrà scaricato e copiato 3 volte. Questo è normale e ci permetterà di generare diverse versioni.

Tuttavia, va detto che NPM può essere utilizzato anche per installare moduli globalmente. Questo è utile nei rari casi in cui il modulo fornisce file eseguibili (e non solo .js).

Ad esempio proprio il nostro modulo markdown. Per installarlo globalmente, aggiungeremo il parametro -g al comando npm:

npm install markdown -g

Avrai quindi accesso al modulo direttamente nel terminale del tuo computer in qualsiasi cartella, prova ad eseguire questa riga:

echo 'Ciao *Mondo*!'| md2html

I moduli installati a livello globale non possono essere inclusi nei progetti Node.js con require()! Sono lì solo per dare comandi supplementari nel terminale, solitamente vengono usati per offrire strumenti allo sviluppatore.

Se vuoi usare lo stesso modulo anche tramite codice JavaScript, devi per forza installarlo localmente nel progetto (come al solito), quindi senza il -g.

Aggiornamento dei moduli

Ti basta un semplice:

npm update

NPM effettuerà la ricerca nei database per vedere se ci sono nuove versioni dei moduli, a questo punto aggiornerà quelli installati sulla tua macchina (facendo attenzione a rispettare la compatibilità) e cancellerà le vecchie versioni.

Ѐ un comando magico!

Bene, per adesso abbiamo finito. Nel prossimo articolo ti mostrerò come ottenere la gloria eterna pubblicando il tuo primo modulo su NPM.


L’articolo che hai appena letto fa parte di una lunga serie di guide e tutorial tradotte in italiano e distribuite gratuitamente. In particolare questo articolo si basa sui testi inglesi di Mathieu Nebra (Ultra fast applications using Node.js), con licenza CC BY-NC-SA. Questo articolo è sotto la stessa licenza.