Tempo fa abbiamo pubblicato una guida per gestire i pacchetti Python utilizzando PIP . Oggi parleremo di come gestire i pacchetti NodeJS usando Npm. NPM è il più grande registro software che contiene oltre 600.000 pacchetti. Ogni giorno, gli sviluppatori di tutto il mondo condividono e scaricano pacchetti tramite npm. In questa guida, spiegherò le basi per lavorare con npm, come l'installazione di pacchetti (localmente e globalmente), l'installazione di determinate versioni di un pacchetto, l'aggiornamento, la rimozione e la gestione dei pacchetti NodeJS e così via.
Installazione di NPM
Poiché npm è scritto in NodeJS, è necessario installare NodeJS per utilizzare npm. Per installare NodeJS su diverse distribuzioni Linux, fare riferimento al seguente collegamento.
- Come installare NodeJS su Linux
Una volta installato, assicurati che NodeJS e NPM siano stati installati correttamente. Ci sono due modi per farlo.
Per verificare dove è stato installato il nodo, eseguire il comando seguente:
$ which node /home/sk/.nvm/versions/node/v9.4.0/bin/node
Controlla la sua versione:
$ node -v v9.4.0
Accedi alla sessione di REPL del nodo:
$ node > .help .break Sometimes you get stuck, this gets you out .clear Alias for .break .editor Enter editor mode .exit Exit the repl .help Print this help message .load Load JS from a file into the REPL session .save Save all evaluated commands in this REPL session to a file > .exit
Controlla dove è installato npm:
$ which npm /home/sk/.nvm/versions/node/v9.4.0/bin/npm
E la versione:
$ npm -v 5.6.0
Grande! Node e NPM sono stati installati e funzionano! Come avrai notato, ho installato NodeJS e NPM nella mia directory $HOME per evitare problemi di autorizzazione durante l'installazione dei moduli a livello globale. Questo è il metodo consigliato dal team di NodeJS.
Bene, andiamo avanti per vedere come gestire i moduli (oi pacchetti) NodeJS usando npm.
Gestisci i pacchetti NodeJS utilizzando Npm
Installazione dei moduli NodeJS
I moduli NodeJS possono essere installati localmente o globalmente (a livello di sistema). Ora mostrerò come installare un pacchetto in locale.
Installa i pacchetti in locale
Per gestire i pacchetti in locale, normalmente utilizziamo package.json file.
Per prima cosa, creiamo la nostra directory di progetto.
$ mkdir demo
$ cd demo
Crea un file package.json all'interno della directory del tuo progetto. Per farlo, esegui:
$ npm init
Inserisci i dettagli del tuo pacchetto come nome, versione, autore, pagina github ecc., o premi semplicemente il tasto INVIO per accettare i valori predefiniti e digita SI per confermare.
This utility will walk you through creating a package.json file. It only covers the most common items, and tries to guess sensible defaults. See `npm help json` for definitive documentation on these fields and exactly what they do. Use `npm install <pkg>` afterwards to install a package and save it as a dependency in the package.json file. Press ^C at any time to quit. package name: (demo) version: (1.0.0) description: demo nodejs app entry point: (index.js) test command: git repository: keywords: author: license: (ISC) About to write to /home/sk/demo/package.json: { "name": "demo", "version": "1.0.0", "description": "demo nodejs app", "main": "index.js", "scripts": { "test": "echo \"Error: no test specified\" && exit 1" }, "author": "", "license": "ISC" } Is this ok? (yes) yes
Il comando precedente inizializza il tuo progetto e crea il file package.json.
Puoi anche farlo in modo non interattivo usando il comando:
$ npm init --y
Questo creerà rapidamente un file package.json con valori predefiniti senza l'interazione dell'utente.
Ora installiamo il pacchetto chiamato commander .
$ npm install commander
Esempio di output:
npm notice created a lockfile as package-lock.json. You should commit this file. npm WARN [email protected] No repository field. + [email protected] added 1 package in 2.519s
Questo creerà una directory denominata "node_modules" (se non esiste già) nella directory principale del progetto e scarica i pacchetti in essa contenuti.
Controlliamo il file package.json.
$ cat package.json { "name": "demo", "version": "1.0.0", "description": "demo nodejs app", "main": "index.js", "scripts": { "test": "echo \"Error: no test specified\" && exit 1" }, "author": "", "license": "ISC", "dependencies": { "commander": "^2.13.0" } }
Vedrai che le dipendenze sono state aggiunte. Il cursore (^ ) nella parte anteriore del numero di versione indica che durante l'installazione, npm estrarrà la versione più alta del pacchetto che riesce a trovare.
$ ls node_modules/ commander
Il vantaggio del file package.json è che se hai il file package.json nella directory del tuo progetto, puoi semplicemente digitare "npm install", quindi npm esaminerà le dipendenze elencate nel file e le scaricherà tutte. Puoi persino condividerlo con altri sviluppatori o eseguire il push nel tuo repository GitHub, quindi quando digitano "npm install", riceveranno tutti gli stessi pacchetti che hai tu.
Potresti anche notare un altro file json denominato package-lock.json . Questo file garantisce che le dipendenze rimangano le stesse su tutti i sistemi su cui è installato il progetto.
Per utilizzare il pacchetto installato nel tuo programma, crea un file index.js (o qualsiasi nome a tua scelta) nella directory del progetto con il codice effettivo, quindi eseguilo usando il comando:
$ node index.js
Installa i pacchetti a livello globale
Se si desidera utilizzare un pacchetto come strumento da riga di comando, è meglio installarlo a livello globale. In questo modo, funziona indipendentemente da quale sia la directory corrente.
$ npm install async -g + [email protected] added 2 packages in 4.695s
Oppure,
$ npm install async --global
Per installare una versione specifica di un pacchetto, facciamo:
$ npm install [email protected] --global
Aggiornamento dei moduli NodeJS
Per aggiornare i pacchetti locali, vai alla directory del progetto in cui si trova package.json ed esegui:
$ npm update
Quindi, esegui il comando seguente per assicurarti che tutti i pacchetti siano stati aggiornati.
$ npm outdated
Se non ci sono aggiornamenti, non restituisce nulla.
Per scoprire quali pacchetti globali devono essere aggiornati, esegui:
$ npm outdated -g --depth=0
Se non è presente alcun output, tutti i pacchetti vengono aggiornati.
Per aggiornare un singolo pacchetto globale, esegui:
$ npm update -g <package-name>
Per aggiornare tutti i pacchetti globali, esegui:
$ npm update -g <package>
Elenco dei moduli NodeJS
Per elencare i pacchetti locali, vai alla directory del progetto ed esegui:
$ npm list [email protected] /home/sk/demo └── [email protected]
Come vedi, ho installato il pacchetto "comandante" in modalità locale.
Per elencare i pacchetti globali, esegui questo comando da qualsiasi posizione:
$ npm list -g
Esempio di output:
/home/sk/.nvm/versions/node/v9.4.0/lib ├─┬ [email protected] │ └── [email protected] └─┬ [email protected] ├── [email protected] ├── [email protected] ├── [email protected] ├── [email protected] ├── [email protected] ├── [email protected] [...]
Questo comando elencherà tutti i moduli e le loro dipendenze.
Per elencare solo i moduli di livello superiore, usa --depth=0 opzione:
$ npm list -g --depth=0 /home/sk/.nvm/versions/node/v9.4.0/lib ├── [email protected] └── [email protected]
Ricerca dei moduli NodeJS
Per cercare un modulo, usa il comando "npm search":
npm search <search-string>
Esempio:
$ npm search request
Questo comando visualizzerà tutti i moduli che contengono la stringa di ricerca "request".
Rimozione dei moduli NodeJS
Per rimuovere un pacchetto locale, vai alla directory del progetto ed esegui il seguente comando per rimuovere il pacchetto dai tuoi node_modules directory:
$ npm uninstall <package-name>
Per rimuoverlo dalle dipendenze in package.json file, usa il salva segnala come di seguito:
$ npm uninstall --save <package-name>
Per rimuovere i pacchetti installati a livello globale, esegui:
$ npm uninstall -g <package>
Pulizia della cache NPM
Per impostazione predefinita, NPM conserva la copia di un pacchetto installato nella cartella della cache denominata npm nella directory $HOME durante l'installazione. Quindi puoi installarlo la prossima volta senza doverlo scaricare di nuovo.
Per visualizzare i moduli memorizzati nella cache:
$ ls ~/.npm
La cartella della cache viene invasa da tutti i vecchi pacchetti nel tempo. È meglio pulire la cache di tanto in tanto.
A partire da [email protetta], la cache npm si risolve automaticamente da problemi di danneggiamento e i dati estratti dalla cache sono garantiti per essere validi. Se vuoi assicurarti che tutto sia coerente, esegui:
$ npm cache verify
Per svuotare l'intera cache, esegui:
$ npm cache clean --force
Visualizzazione della configurazione NPM
Per visualizzare la configurazione npm, digitare:
$ npm config list
Oppure,
$ npm config ls
Esempio di output:
; cli configs metrics-registry = "https://registry.npmjs.org/" scope = "" user-agent = "npm/5.6.0 node/v9.4.0 linux x64" ; node bin location = /home/sk/.nvm/versions/node/v9.4.0/bin/node ; cwd = /home/sk ; HOME = /home/sk ; "npm config ls -l" to show all defaults.
Per visualizzare la posizione globale corrente:
$ npm config get prefix /home/sk/.nvm/versions/node/v9.4.0
E per ora è tutto. Quello che abbiamo appena trattato qui sono solo le basi. NPM è un argomento vasto. Per maggiori dettagli, vai alla Guida introduttiva a NPM guida.