Node.js è un ambiente di runtime Javascript multipiattaforma e open-source. Negli ultimi anni, è diventato una scelta popolare per lo sviluppo web back-end grazie alle sue veloci prestazioni di Input/Output (I/O) e all'imbattibile sintassi JavaScript. Inoltre, la sua natura adattiva consente una rapida personalizzazione, facendo risaltare questa tecnologia server rispetto ai suoi concorrenti.
Node.js Package Manager — Una panoramica
Node.js Package Manager o npm è il package manager predefinito per JavaScript. Npm viene spesso utilizzato per installare script di progetto e gestire moduli esterni in un progetto Node.js . Inoltre, tiene traccia dei moduli installati in un progetto utilizzando il file package.json , che si trova nella directory del progetto. Npm memorizza e registra le seguenti informazioni:
- Moduli richiesti per un progetto e le relative versioni installate, se presenti.
- Descrizione dei metadati di un progetto che include dettagli sull'autore e sulla licenza, solo per citarne alcuni.
- Script eseguibili per automatizzare attività relative al progetto o orientate agli obiettivi.
In questo tutorial, ti guideremo attraverso i passaggi per utilizzare i moduli Node.js con npm e package.json.
Iniziamo!
Prerequisiti
Per seguire questo tutorial, avrai bisogno di quanto segue:
- Node.js deve essere installato nel tuo sistema.
- Segui i passaggi per installare Node.js su Ubuntu 18.04
-
L'ultima versione di Ubuntu installata sul tuo sistema.
Passo 1: Creare un file package.json
Iniziamo il nostro tutorial prendendo l'esempio di un progetto fittizio che utilizza il modulo locator di Node.js. Il progetto mira a raccogliere l'indirizzo IP dell'utente e a mostrare come output il paese di origine dell'utente. Poiché ci concentriamo sulla comprensione dell'uso dei moduli Node.js con npm, non è necessario scrivere i moduli manualmente. Utilizzeremo invece i pacchetti preinstallati e personalizzabili nel nostro progetto.
JSON o JavaScript Object Notation è un formato standard utilizzato per la condivisione e la trasmissione di dati. Inizialmente, creeremo un file JSON che memorizzerà e gestirà le dipendenze del software. Tuttavia, creare manualmente un file package.json è faticoso e richiede tempo. Per semplicità, utilizzeremo il comando init per creare il file package.json invece di impegnarci a scrivere blocchi di codice aggiuntivi per scrivere il nostro JSON da zero.
-
init comando
Per prima cosa, creiamo una nuova cartella usando il comando mkdir e chiamiamola locator:
|
1 |
mkdir locator |
Successivamente, usa il comando cd per spostarti nella cartella appena creata:
|
1 |
cd locator |
Quindi, digita npm per inizializzare il prompt interattivo:
|
1 |
npm init |
Dopodiché, vedrai l'output:

1. name
Verrai indirizzato al name del tuo nuovo progetto; la cartella corrente. Vedrai i valori predefiniti tra parentesi (). Per mantenere questo tutorial semplice e facile da capire, sceglieremo le opzioni predefinite. Premi INVIO per accettare e continuare.
2. version
Il valore successivo è il nome della version che è un requisito fondamentale se condividi il tuo progetto nel repository dei pacchetti npm.
|
Note: I pacchetti Node.js seguono la guida Semantic Versioning (semver). First number: La versione MAJOR e cambia solo quando cambia l'API. Second Number: La versione MINOR che cambia quando vengono aggiunte funzionalità aggiuntive. Last number: La versione PATCH che cambia quando viene risolto un errore o un bug. |
3. description
La description è una stringa informativa che descrive il processo di lavoro del modulo Node.js. Nella nostra demo, il progetto locator otterrà l'indirizzo IP dell'utente e restituirà il paese di origine.
|
Note: Per lo più, i moduli hanno un file index.js come punto di ingresso. Questa è anche la proprietà main di package.json, il punto di ingresso per i moduli npm. Tuttavia, se package.json non viene trovato, Node.js caricherà automaticamente index.js . |
4. test comando
È uno script o un comando eseguibile per eseguire i test del tuo progetto. Poiché i test esulano dallo scopo del nostro tutorial, saltiamolo e premiamo INVIO.
5. init comando
Il comando init chiederà il GitHub Repository del progetto. Di nuovo, saltiamo questa parte e continuiamo.
6. keywords
Parole chiave sono un array di stringhe utilizzate per cercare un repository. Si consiglia di mantenere le parole chiave accurate e pertinenti al progetto in modo che siano tracciabili senza problemi.
Elenca queste keywords come stringhe e separale usando le virgole. Nel nostro progetto, digita ip, country, latitude, e longitude al prompt e le vedrai incluse come parole chiave in package.json.
7. author
Tratta il campo author come feedback e come modo per interagire con i tuoi utenti. Ad esempio, se gli utenti rilevano un errore nel tuo modulo, possono utilizzare questo campo per informarti e fare in modo che l'errore venga corretto.
-
Formato: "Nome \<Email\> (Sito web)".
-
Demo: "Paul\<paul@your_domain\> (https://your_domain)"
-
L'aggiunta dei dati relativi a email e sito web è facoltativa. Tuttavia, puoi specificare un autore valido e aggiungere i tuoi dati di contatto come author. Conferma i dettagli e premi INVIO.
8. license
Il campo license illustra i termini e le condizioni legali che gli utenti devono conoscere durante l'utilizzo del modulo. Poiché Node.js i moduli sono open source, npm lo configura su ISC-license automaticamente.
Naviga sulla pagina delle licenze open source e scegli la Open Source Initiative che meglio si adatta alle tue esigenze. Digita UNLICENSED al prompt se non hai bisogno di una licenza per il tuo repository. Nel nostro tutorial, useremo la licenza ISC predefinita. Premi INVIO per completare questo processo.
Il comando init creerà il file package.json e mostrerà il risultato:

Successivamente, premi INVIO per continuare e creare il file package.json . Il nostro file JSON terrà traccia di tutti i moduli e pacchetti che installeremo nel nostro progetto.
Nel passaggio successivo, installeremo le dipendenze e i moduli Node.js.
Passaggio 2: Installare dipendenze e moduli
La creazione di librerie esterne personalizzate richiede tempo e sforzi notevoli. In alternativa, il modo più efficace è installare dipendenze e librerie esterne predefinite. Nel nostro tutorial, useremo la libreria HTTP per consentire al nostro modulo di localizzazione demo di effettuare una richiesta API esterna per raccogliere dati geografici.
In questa guida, useremo la libreria axios per effettuare richieste HTTP. Per prima cosa, installiamo axios:
|
1 |
npm install axios --save |
Inizia installando il pacchetto npm seguito dall'elencarli separandoli con uno spazio. Inoltre, includi il tag --save per assicurarti che il progetto venga salvato come dipendenza del progetto.
Vedrai l'output:

Apri il file package.json usando nano o qualsiasi editor di testo di tua scelta:
|
1 |
nano package.json |
Nota la proprietà appena aggiunta evidenziata in fondo al blocco di codice:

-
Scaricare le dipendenze di sviluppo
Le dipendenze di sviluppo sono pacchetti utilizzati nello sviluppo del progetto e non hanno alcuna utilità nella produzione o nella manutenzione del progetto. Sebbene queste dipendenze possano sembrare inefficaci negli ambienti di produzione, svolgono un ruolo significativo nella scrittura e riscrittura del codice.
Come i linter di codice, le dipendenze di sviluppo svolgono un ruolo fondamentale nello sviluppo del software. Per lo più, gli sviluppatori utilizzano code linters per mantenere l'uniformità e la coerenza nello stile durante lo sviluppo del progetto, cosa che altrimenti sarebbe inutile in produzione.
Let’s install a linter as a development dependency for your project. Also, use the --save-dev flag to save eslint come dipendenza richiesta per lo sviluppo:
|
1 |
npm i eslint@6.0.0 --save-dev |
Abbiamo aggiunto @6.0.0 alla nostra dipendenza in modo che, quando aggiorniamo i moduli, vengano contrassegnati con una versione. Il simbolo @ notificherà a npm di cercare un tag specifico che desideri installare. Ora riapri il file package.json :
|
1 |
nano package.json |
Vedrai l'output:

- File autogenerati: node_modules e package-lock.json
All'inizio, durante l'installazione di un pacchetto nel progetto Node.js, i file package.json e package-lock.json vengono creati automaticamente. Conferma la presenza di questi file nella directory di lavoro:
![]()
Poiché la maggior parte delle dipendenze installate è memorizzata in node_modules cartella, si consiglia di non effettuare il commit di questa cartella nel repository sotto controllo di versione. Con l'aumento del numero di dipendenze installate, la dimensione di node_modules aumenta anche.
Al contrario, il package-lock.json mantiene una traccia delle versioni esatte installate, quindi non è necessario includere node_modules esplicitamente. A differenza di node_modules cartella, è possibile effettuare il commit di questo file nel repository sotto controllo di versione perché fornisce una rappresentazione dettagliata di tutte le dipendenze insieme alle relative versioni.
- Installa utilizzando package.json
I file package.json e package-lock.json consentono di configurare le stesse dipendenze del progetto prima di avviare lo sviluppo del progetto. Naviga nel tuo albero delle directory e crea una nuova cartella allo stesso livello di directory del locator. Nomina la nuova cartella come cloned_locator:
|
1 2 |
cd .. mkdir cloned_locator |
Successivamente, spostati in cloned_locator:
|
1 |
cd cloned_locator |
Importa i file package.json e package-lock.json da locator a cloned_locator:
|
1 |
cp ../locator/package.json ../locator/package-lock.json . |
Il . indica la cartella corrente. Installa i moduli richiesti utilizzando il seguente comando:
|
1 |
npm i |
Inizialmente, npm verificherà il file package-lock.json per installare i moduli. Se il file lock non è disponibile, leggerà il file package.json file per determinare le installazioni.
In generale, l'installazione da package-lock.json è semplice perché il file lock contiene la versione esatta dei moduli e delle loro dipendenze. Ciò significa che quando si installa utilizzando il package.json, npm risparmierà il tempo extra necessario per individuare una versione compatibile e stabile.
Ignora le dipendenze di sviluppo aggiungendo il --production tag:
|
1 |
npm i --production |
Dopodiché, torna al locator:
|
1 |
cd ../locator |
- Installazioni globali
Fino ad ora, abbiamo installato npm moduli localmente. Tuttavia, hai anche l'alternativa di installare i pacchetti a livello globale e utilizzarli tramite comando shell o CLI. Ad esempio, puoi navigare nel progetto locator corrente utilizzando la libreria Hexo e gestire il tuo sito web statico. Utilizza il seguente comando con il -g tag per installare la CLI di Hexo a livello globale:
|
1 |
npm i hexo-cli -g |
|
Nota: Se si verifica un errore durante l'installazione globale dei pacchetti, prova questo comando sudo npm i hexo-cli -g con le credenziali di root. |
Utilizza il seguente comando per verificare che il pacchetto sia stato installato correttamente:
|
1 |
hexo --version |
Vedrai l'output:

Passo 3: Gestire e aggiornare i moduli
Un gestore di pacchetti fa molto di più che installare semplicemente i moduli Node.js. Ci sono molte opzioni di personalizzazione con cui puoi elencare, aggiornare, disinstallare o persino aggiungere un livello di sicurezza a tua discrezione.
In questa sezione impareremo come:
-
Elencare i moduli
-
Aggiornare i moduli
-
Disinstallare i moduli
-
Eseguire l'audit dei moduli
Discutiamone in dettaglio:
-
Elencare i moduli
L'elenco dei moduli, come suggerisce il nome, ti fornirà i dettagli su tutti i moduli installati nel progetto. Invece di leggere il file package.json puoi utilizzare il comando ls o list per conoscere in dettaglio i moduli del tuo progetto:
|
1 |
npm ls |
Vedrai l'output:

Per impostazione predefinita, il comando ls elenca l'intero albero delle dipendenze che include le dipendenze del progetto e i moduli da cui dipendono. Tuttavia, puoi ottenere una panoramica generale e mirare esplicitamente anche a un modulo specifico. Utilizza il seguente comando per verificare i moduli che hai installato senza le loro dipendenze:
|
1 |
npm ls --depth 0 |
Vedrai l'output:

-
Aggiornare i moduli
Si consiglia sempre di mantenere aggiornato il modulo npm in modo da non riscontrare arresti anomali del software o conflitti. Utilizza il seguente comando per verificare se è necessario un aggiornamento:
|
1 |
npm outdated |
Vedrai l'output:

Vediamo in dettaglio ciascun termine:
- Package: Elenca il Package corrente installato nel tuo progetto.
- Current: Questo mostra la versione Current del pacchetto.
- Wanted: Mostra la versione npm versione che meglio si adatta al requisito di versione in package.json.
- Latest: Mostra l'ultima npm rilasciata che devi aggiornare se richiesto.
- Location: Il pacchetto Location nell'albero delle dipendenze.
Come suggerito, possiamo aggiornare il nostro npm a una versione stabile. Usa il seguente comando per aggiornare il tuo pacchetto corrente:
|
1 |
npm up eslint |
You’ll see the output:

Invece di aggiornarli uno per uno, puoi anche aggiornare tutti i moduli contemporaneamente usando il comando up :
|
1 |
npm up |
-
Uninstall Modules
Molte volte, una dipendenza potrebbe non mostrare l'output previsto e potrebbe essere necessario creare una dipendenza personalizzata. In questi scenari, hai la possibilità di disinstallare le dipendenze dai tuoi file package.json e package-lock.json . Supponi di avere axios come dipendenza e che non riesca a fornire un risultato soddisfacente. Rimuoverai senza dubbio questo repository dal tuo progetto. Usa il comando uninstall o un per rimuovere axios:
|
1 |
npm un axios |
You’ll see the output:

Sebbene il comando uninstall abbia rimosso la dipendenza, non abbiamo ricevuto alcuna notifica della sua rimozione. Elenchiamo le dipendenze per vedere quante ne abbiamo ora:
|
1 |
npm ls --depth 0 |
Vedrai l'output senza alcuna dipendenza axios presente nell'elenco:

-
Audit Modules
Se le dipendenze installate nel tuo progetto sono soggette a potenziali minacce alla sicurezza, puoi rilevarle. Per prima cosa, devi installare una versione obsoleta del modulo request per vedere come funziona il modulo di audit:
|
1 |
npm i request@2.60.0 |
Vedrai l'output che ti invita a correggere le minacce o le vulnerabilità:

Per espandere i dettagli su vulnerabilità e minacce, usa il comando audit :
|
1 |
npm audit |
Vedrai un rapporto di sicurezza dettagliato:

Per risolvere queste vulnerabilità, usa il comando fix :
|
1 |
npm audit fix |
Vedrai l'output:

Potresti avvertito che due delle nove vulnerabilità sono state corrette. Tuttavia, le restanti sette vulnerabilità persistono nelle tue dipendenze perché il comando audit fix non risolve tutti i problemi. Per risolvere questo problema, potrebbe essere necessario aggiornare la dipendenza a una versione superiore utilizzando un'API diversa. Fai attenzione durante l'aggiornamento perché c'è la probabilità di interrompere il codice più in alto nell'albero delle dipendenze. Usa il seguente comando per confermare che le vulnerabilità siano scomparse:
|
1 |
npm audit fix --force |
Fai attenzione quando usi un'API diversa per risolvere le minacce di vulnerabilità perché, se non ne sei sicuro, potresti rischiare di interrompere la funzionalità del codice.
Conclusion
In conclusione, abbiamo dimostrato come utilizzare i moduli Node.js con npm e package.json. Inoltre, abbiamo esaminato i metodi per elencare, aggiornare, gestire, controllare e disinstallare le dipendenze dei nostri pacchetti. Come prossima sfida, ti incoraggiamo a utilizzare i concetti discussi in questa guida e a sperimentare l'installazione e il test dei pacchetti in autonomia. Puoi anche provare a creare applicazioni Node.js e configurare le dipendenze per migliorare il tuo apprendimento.
Inoltre, ci sono molti altri materiali di apprendimento su argomenti relativi a Node.js e Javascript che puoi trovare sul nostro blog:
- Installare Node.js su CentOS 8: una guida completa
- Connettere PostgreSQL con applicazioni Node.js: un tutorial
- Utilizzare il client HTTP Axios in un'applicazione React: un tutorial
- Come distribuire un'app Node.js (Express.js) con Docker su Ubuntu 20.04
Buona programmazione!
Commenti
Ancora nessun commento. Scrivi il primo.