Trova la versione di un pacchetto npm installato


2200

Come trovare la versione di un pacchetto node.js / npm installato ?

Questo stampa la versione stessa di npm:

npm -v <package-name>

Questo stampa un errore criptico:

npm version <package-name>

Questo stampa la versione del pacchetto sul registro (ovvero l'ultima versione disponibile):

npm view <package-name> version

Come ottengo la versione installata ?


5
Nella mia installazione, "npm -v <nome-pacchetto>" riporta la versione stessa di npm. Per elencare l'ultima versione di un pacchetto nel registro, ho scoperto che "npm view <nome_pacchetto> versione" fa il lavoro.
David A. Gray,

15
npm showmostra l'ultimo in npm, non installato
Tsagana Nokhaeva,

Risposte:


2579

npm listper pacchetti locali o npm list -gper pacchetti installati a livello globale.

Puoi trovare la versione di un pacchetto specifico passando il suo nome come argomento. Ad esempio, npm list gruntcomporterà:

projectName@projectVersion /path/to/project/folder
└── grunt@0.4.1

In alternativa, puoi semplicemente eseguire npm listsenza passare il nome di un pacchetto come argomento per vedere le versioni di tutti i tuoi pacchetti:

├─┬ cli-color@0.1.6 
 └── es5-ext@0.7.1 
├── coffee-script@1.3.3 
├── less@1.3.0 
├─┬ sentry@0.1.2 
 ├── file@0.2.1 
 └── underscore@1.3.3 
└── uglify-js@1.2.6 

È inoltre possibile aggiungere --depth=0argomenti per elencare i pacchetti installati senza le relative dipendenze.


126
Su Mac e Linux è bello aggiungere "| grep nome_modulo", per filtrare la versione del modulo desiderata. Soprattutto quando si esegue a livello globale con -g. Ad esempio: "npm list -g | grep express" per ottenere la versione express installata.
Guya,

103
Se si desidera un modulo specifico, è possibile eseguirlo npm list less-middlewarecome un esempio.
juanpaco,

13
Per il suggerimento di @ guya per i sistemi basati su * nix, su Windows è possibile utilizzare PowerShell per risultati simili: | select-string module_nameper filtrare il modulo. Oppure, se stai usando Git Bash (o solo Bash, del resto), puoi usarlo grep.
Noel,

15
Se non ricordi list, npm lsfunziona anche. In effetti, molti comandi npm hanno alias e, inoltre, se si digita una sottostringa di un comando, se questa sottostringa non è ambigua, funzionerà anche; per esempio npm ls, npm list, npm lissono tutti uguali. Se vuoi un output più dettagliato, prova npm ll(ma probabilmente vuoi --depth=0aggiungerlo).
jakub.g,

4
L'output non è il migliore per l'analisi con uno script. Non c'è davvero un modo per ottenere un output che sia solo la versione del pacchetto senza dover fare qualcosa del generenpm list -g | awk -F@ '/<package>/ { print $2}'
Thayne,

868

Un altro modo rapido per scoprire quali pacchetti sono installati localmente e senza le loro dipendenze è usare:

npm list --depth=0

Che ti dà qualcosa di simile

├── bower@0.8.6
├── grunt@0.4.1
├── grunt-bower-requirejs@0.4.3
├── grunt-contrib-clean@0.4.1
├── grunt-contrib-coffee@0.7.0
├── grunt-contrib-copy@0.4.1
├── grunt-contrib-imagemin@0.1.4
├── grunt-contrib-jshint@0.1.1
├── grunt-contrib-livereload@0.1.2
├── grunt-contrib-requirejs@0.4.1
├── grunt-regarde@0.1.1
└── grunt-svgmin@0.1.0

Ovviamente, lo stesso può essere fatto a livello globale con npm list -g --depth=0.

Questo metodo è più chiaro nel caso in cui siano stati installati molti pacchetti.

Per scoprire quali pacchetti devono essere aggiornati, è possibile utilizzare npm outdated -g --depth=0.


14
mi dà lo stesso che senza --depth
ygaradon,

7
sembra che l'abbiano risolto in npm 1.4.6. Vedi github.com/npm/npm/issues/4733
Howie

7
Funziona benissimo con| grep <package_name>
Marco Prins,

4
@ygaradon Corretto, ma lo --depth=0rende più veloce, perché non deve caricare in modo ricorsivo le dipendenze
Marco Prins

npm list -g --depth=0per i moduli elenco installati a livello globale
EdgeDev

220

npm view <package> version - restituisce l'ultima versione disponibile sul pacchetto.

npm list --depth=0 - restituisce le versioni di tutti i moduli installati senza dipendenze.

npm list - restituisce le versioni di tutti i moduli e le dipendenze.

E infine per ottenere la versione del nodo: node -v


16
npm visualizza la versione <package>, passa al registro remoto di npm, non al filesystem locale ...
Alexander Mills,

@AlexanderMills True, ma averlo qui evita un'altra ricerca. Btw, npm v, npm infoe npm showsono tutti alias npm view.
CPHPython,

85
npm info YOUR_PACKAGE version

per esempio

npm info grunt version
0.4.5

105
Questo non mostra la versione del pacchetto installato, mostra solo l'ultima versione disponibile.
Tanner Semerad,

Concordo con @ tanner-semerad. Ho controllato Docs of npm per chiarirlo. npm infoè alias per npm viewe in Documenti di npm troverai quello in piedi: questo comando mostra i dati su un pacchetto e li stampa sullo stream a cui fa riferimento la configurazione outfd, che per impostazione predefinita è stdout. [...] La versione predefinita è "ultima" se non specificata. È così che voto in basso.
dannydedog,

Mostra l'ultima versione disponibile, non l'ultima installata. Downvoted.
lofihelsinki,

2
npm info YOUR_PACKAGE versionL'unico che ha funzionato :)
GOXR3PLUS

stesso, 'npm info YOUR_PACKAGE versione' L'unico che ha funzionato
Jonas

63

Ho appena usato

npm list | grep <package name>

e ha funzionato alla grande

Su Windows Run:

npm list | find <package name>

In esecuzione PowerShell:

npm list | sls <package name>

3
findla versione non funziona per me - anche con la stringa tra virgolette, ma powershell funziona bene
fiat

4
Per utenti Windows: npm list -g --depth=0 |find "<package name>" notare le doppie virgolette
robe007

56

Dalla radice del pacchetto fai:

node -p "require('./package.json').version"

EDIT : (quindi è necessario cdaccedere alla home directory del modulo se non si è già lì. Se si è installato il modulo con npm install, allora sarà sotto node_modules/<module_name>)

EDIT 2 : aggiornato secondo la risposta di @ jeff-dickey


Bello! Abbastanza un po 'più veloce dell'esecuzione di "npm list" come suggeriscono le altre risposte (~ 1s invece di ~ 20s) - almeno quando hai pronto questo snippet di codice! (dovrebbe esserci davvero un plugin npm per fare questo ...)
Venryx,

1
oppurenode -p "require('./package.json').version"
Jeff Dickey,

2
Non verrà installata la versione attuale se esiste un delimitatore di intervallo come ^ ~
geedew

21

Per i pacchetti locali

npm list --depth=0

Per i pacchetti globali

npm list  -g --depth=0

21

Combinando alcune delle risposte di cui sopra e produce una ricerca super semplice e super veloce.
Esegui dalla radice del progetto. Non c'è bisogno di accedere a cdnessuna cartella, solo 1 riga:

node -p "require('SOMEPACKAGE/package.json').version"


21

Puoi anche controllare la versione con questo comando:

npm info <package name> version


29
Ancora una volta, mostra l'ultima versione disponibile nel registro dei pacchetti, non la versione del pacchetto attualmente installato.
David Ferenczy Rogožan,

@DawidFerenczy Concordo con il suo show solo l'ultima versione come npm info httpaction
Nitin.

16

Se si accetta di installare jq , è possibile utilizzare l'output JSON di npm list.

npm -j ls <package-name> | jq -r .version

o, se vuoi essere prolisso

npm --json list <package-name> | jq --raw-output '.version'

Per esempio:

$ npm -j ls ghost | jq -r .version
0.4.2

Inoltre, il formato JSON è leggermente diverso per i pacchetti globali, quindi dovrai cambiare la query.

Per esempio:

$ npm -j -g ls | jq -r .dependencies.ghost.version
0.4.2

14

Se sei abbastanza coraggioso (e hai nodeinstallato), puoi sempre fare qualcosa del tipo:

echo "console.log(require('./package.json').version);" | node

Questo stamperà la versione del pacchetto corrente. Puoi anche modificarlo per diventare pazzo, in questo modo:

echo "eval('var result='+require('child_process').execSync('npm version',{encoding:'utf8'})); console.log(result.WHATEVER_PACKAGE_NAME);" | node

Che stamperà la versione del WHATEVER_PACKAGE_NAMEpacchetto, che è visto da npm version.


node -e "console.log(require('./package.json').version);"
papiro,

12

Per vedere tutti i pacchetti installati localmente o globalmente, usare questi comandi:

  1. npm listper pacchetti locali o npm list -gper pacchetti installati a livello globale.
  2. npm list --depth=0
  3. npm list | sls <package name>
  4. node -v


10

Ho creato uno strumento che fa esattamente questo: qnm

qnm - Una semplice utility CLI per l'interrogazione della node_modulesdirectory.

Installalo usando:

npm i --global qnm

e corri:

qnm [module]

per esempio:

> qnm lodash

lodash
├── 4.17.5
├─┬ cli-table2
 └── 3.10.1
└─┬ karma
  └── 3.10.1

Ciò significa che abbiamo lodashinstallato nella radice di node_modulese altre due copie in node_modulesdi cli-table2e karma.

È davvero veloce e ha alcune belle funzioni come il completamento delle schede e la ricerca delle corrispondenze.


9

Per elencare i pacchetti locali con il numero di versione usare:

npm ls --depth=0

Per elencare i pacchetti globali con il numero di versione usare:

npm ls -g --depth=0


8

È possibile utilizzare vista NPM versione [modulo] , informazioni NPM versione [modulo] , spettacolo NPM versione [modulo] o v NPM versione [modulo] per verificare la versione su un modulo NPM installato.

Supponiamo che la mia versione del modulo grunt sia la 0.4.5:

npm view grunt version => 0.4.5
npm info grunt version => 0.4.5
npm show grunt version => 0.4.5
npm v grunt version    => 0.4.5

15
Tutti quelli mostrano la versione più recente disponibile, non la versione attualmente installata
sth

8

npm list --depth 0 è il comando che mostra tutte le librerie con versione ma che puoi usare npm-check

npm-check è una buona libreria per gestire tutte quelle cose riguardanti l'evento del sistema versione che mostrerà le versioni delle librerie, l'aggiornamento di una nuova versione, la versione inutilizzata e molte altre.

per installarlo basta eseguire

npm install -g npm-check

e semplicemente corri

npm-check

controlla lo screenshot che mostra tutto sulla versione del pacchetto, l'aggiornamento della nuova versione e la versione inutilizzata.

inserisci qui la descrizione dell'immagine

Funziona anche a livello globale. Provaci. Spero che questo aiuti qualcuno.


7

Ecco un portatile Unix (using grepe sed) one-liner che restituisce la stringa di versione di un pacchetto npm installato globalmente (rimuovi invece il gda -pgper interrogare i pacchetti locali):

$ npm ll -pg --depth=0 grunt | grep -o "@.*:" | sed 's/.$//; s/^.//'
0.4.5
  • le npm lluscite una stringa parseable formattato come: /usr/lib/node_modules/npm:npm@2.14.8:;
  • il grepcomando estrae il valore tra @e :, compreso;
  • il sedcomando rimuove i caratteri circostanti.

6

Ho aggiunto questo al mio .bashrc

function npmv {
    case $# in # number of arguments passed
    0) v="$(npm -v)" ; #store output from npm -v in variable
        echo "NPM version is: $v"; #can't use single quotes 
                                   #${v} would also work
    ;;   
    1) s="$(npm list --depth=0 $1 | grep $1 | cut -d @ -f 2)";
       echo "$s";
    ;;
    2) case "$2" in # second argument
        g) #global|#Syntax to compare bash string to literal
             s="$(npm list --depth=0 -g $1 | grep $1 | cut -d @ -f 2)";
        echo "$s";
        ;;
        l) #latest
             npm view $1 version; #npm info $1 version does same thing
       ;;
       *) echo 'Invalid arguments';
       ;;
       esac;
    ;;
    *) echo 'Invalid arguments';
    ;;
    esac;
}
export -f npmv

Ora tutto ciò che devo fare è digitare:

  • npmv per la versione di npm ad es .:NPM version is: 4.2.0
  • npmv <nome-pacchetto> per la versione locale, ad esempio:0.8.08
  • npmv <nome-pacchetto> g per versione globale ad es .:0.8.09
  • npmv <nome-pacchetto> l per l'ultima versione, ad es .:0.8.10

Nota -d sul comando di taglio significa delimitare da, seguito da @, quindi f indica il campo 2 significa il secondo campo poiché ci sarà uno dei due lati del simbolo @.


5

Puoi provare questo: npm show {package} versionmostra l'ultima versione del pacchetto. E se il tuo pacchetto è obsoleto, npm outdatedlo mostrerà con le informazioni sulla versione.


2
L'OP stava chiedendo la versione del pacchetto attualmente installato , non l'ultima versione disponibile nel registro dei pacchetti.
David Ferenczy Rogožan

5

Questa è una domanda semplice e dovrebbe avere una risposta più semplice di quella che vedo sopra.

Per vedere i pacchetti npm installati con la loro versione, il comando è npm ls --depth=0, che, per impostazione predefinita, visualizza ciò che è installato localmente. Per visualizzare i pacchetti installati a livello globale, aggiungere l' -globalargomento: npm ls --depth=0 -global.

--depth=0 restituisce un elenco di pacchetti installati senza le relative dipendenze, che è ciò che si desidera fare la maggior parte delle volte.

lsè il nome del comando ed list è un alias perls .


3

Accedi al package.json

Puoi accedere al package.jsono bower.jsondel pacchetto con:

notepad ./node_modules/:packageName/package.json

Questo aprirà il package.jsonin notepadcui ha il version numberdi :packageNamete incluso nelcommand .

Per esempio :

notepad ./node_modules/vue-template-compiler/package.json

In bocca al lupo.


6
Non solo ci sono modi molto più semplici per farlo, la versione che hai specificato nel tuo pacchetto.json potrebbe non essere effettivamente la versione installata a causa delle notazioni dell'intervallo semver. Cioè, una dipendenza può essere specificata come versione ^ 1.3.0, ma ciò può significare qualsiasi cosa dalla versione 1.3.0 a 1.99.99
Isochronous

3

Possiamo usare npm view any-promise (il nome del tuo modulo) -v


1
Questo mostra l'ultima versione disponibile, non la versione nella directory locale.
christianbundy,

@christianbundy puoi usare npm list --depth = 0 | grep uuid
Nitin.

Ho dovuto usare npm list --depth=0 | grep uuid | awk '{ print $2; }' | cut -d '@' -f 2, ma sì, funziona fintanto che è una dipendenza di alto livello. Non penso che sia sempre così, in base alla domanda originale.
christianbundy,


0

È molto semplice ... basta digitare sotto la riga

npm view < package-name > version

** Esempio **

npm view redux version

Ho la versione 7.2.0 di Redux

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.