Rechercher la version d'un package npm installé

2200

Comment trouver la version d'un package node.js / npm installé ?

Ceci imprime la version de npm elle-même:

npm -v <package-name>

Cela imprime une erreur cryptique:

npm version <package-name>

Cela imprime la version du package sur le registre (c'est-à-dire la dernière version disponible):

npm view <package-name> version

Comment obtenir la version installée ?

Laurent Couvidou
la source
5
Sur mon installation, "npm -v <nom-package>" signale la version de npm, elle-même. Pour répertorier la dernière version d'un package dans le registre, j'ai constaté que «npm view <package-name> version» fait le travail.
David A. Gray
15
npm showaffiche la dernière version de npm, non installée
Tsagana Nokhaeva

Réponses:

2579

npm listpour les packages locaux ou npm list -gpour les packages installés globalement.

Vous pouvez trouver la version d'un package spécifique en passant son nom comme argument. Par exemple, npm list gruntentraînera:

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

Alternativement, vous pouvez simplement exécuter npm listsans passer un nom de package comme argument pour voir les versions de tous vos packages:

├─┬ 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 

Vous pouvez également ajouter un --depth=0argument pour répertorier les packages installés sans leurs dépendances.

TheHippo
la source
126
Sur Mac et Linux, il est agréable d'ajouter "| grep nom_module", pour filtrer la version de module souhaitée. Surtout lors de l'exécution globale avec -g. Par exemple: "npm list -g | grep express" pour obtenir la version express installée.
guya
103
Si vous voulez un module spécifique, vous pouvez l'exécuter comme npm list less-middlewareun exemple.
juanpaco
13
Selon le conseil de @ guya pour les systèmes basés sur * nix, sous Windows, vous pouvez utiliser PowerShell pour des résultats similaires: | select-string module_namepour filtrer le module. Ou, si vous utilisez Git Bash (ou simplement Bash, d'ailleurs), vous pouvez utiliser grep.
Noel
15
Si vous ne vous en souvenez pas list, npm lsfonctionne également. En fait, de nombreuses commandes npm ont des alias, et de plus, si vous tapez une sous-chaîne d'une commande, si cette sous-chaîne n'est pas ambiguë, cela fonctionnera également; par exemple npm ls, npm list, npm lissont tous les mêmes. Si vous voulez une sortie plus détaillée, essayez npm ll(mais vous voudrez probablement y --depth=0ajouter).
jakub.g
4
La sortie n'est pas la meilleure pour l'analyse avec un script. N'y a-t-il vraiment aucun moyen d'obtenir une sortie qui n'est que la version du package sans avoir à faire quelque chose commenpm list -g | awk -F@ '/<package>/ { print $2}'
Thayne
868

Un autre moyen rapide de découvrir quels packages sont installés localement et sans leurs dépendances consiste à utiliser:

npm list --depth=0

Ce qui vous donne quelque chose comme

├── 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

Évidemment, la même chose peut être faite globalement avec npm list -g --depth=0.

Cette méthode est plus claire si vous avez installé un grand nombre de packages.

Pour savoir quels packages doivent être mis à jour, vous pouvez utiliser npm outdated -g --depth=0.

Patrik Affentranger
la source
14
ça me donne la même chose que sans la
profondeur
7
il semble qu'ils l'ont corrigé dans npm 1.4.6. Voir github.com/npm/npm/issues/4733
Howie
7
Fonctionne très bien avec| grep <package_name>
Marco Prins
4
@ygaradon Correct, mais le --depth=0rend plus rapide, car il n'a pas à charger les dépendances de manière récursive
Marco Prins
npm list -g --depth=0pour les modules de liste installés à l'échelle mondiale
EdgeDev
220

npm view <package> version - renvoie la dernière version disponible sur le package.

npm list --depth=0 - renvoie les versions de tous les modules installés sans dépendances.

npm list - renvoie les versions de tous les modules et dépendances.

Et enfin pour obtenir la version du nœud: node -v

Salvador Dali
la source
16
La version <package> de npm view, va dans le registre distant npm, pas dans le système de fichiers local ...
Alexander Mills
@AlexanderMills True, mais l'avoir ici évite une autre recherche pour cela. BTW, npm v, npm infoet npm showsont tous alias npm view.
CPHPython
85
npm info YOUR_PACKAGE version

par exemple

npm info grunt version
0.4.5
David Beckwith
la source
105
Cela ne montre pas la version du package installé, il montre juste la dernière version disponible.
Tanner Semerad
D'accord avec @ tanner-semerad. J'ai vérifié dans Docs de npm pour le clarifier. npm infoest un alias pour npm viewet dans Docs of npm, vous trouverez que standing: Cette commande affiche les données sur un package et les imprime dans le flux référencé par la configuration outfd, qui est par défaut stdout. [...] La version par défaut est "la plus récente" si elle n'est pas spécifiée. C'est comme ça que je vote contre.
dannydedog
Affiche la dernière version disponible, pas la dernière installée. Voté.
lofihelsinki
2
npm info YOUR_PACKAGE versionLe seul qui a fonctionné :)
GOXR3PLUS
même, 'npm info YOUR_PACKAGE version' Le seul qui a fonctionné
Jonas
63

Je viens d'utiliser

npm list | grep <package name>

et cela a très bien fonctionné

Sous Windows, exécutez:

npm list | find <package name>

Dans l'exécution de PowerShell:

npm list | sls <package name>
chrissavage
la source
3
findla version ne fonctionne pas pour moi - même avec une chaîne entre guillemets, mais PowerShell fonctionne bien
fiat
4
Pour les utilisateurs de Windows: npm list -g --depth=0 |find "<package name>" notez les guillemets doubles
robe007
56

Depuis la racine du package:

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

EDIT : (vous devez donc cdentrer dans le répertoire personnel du module si vous n'y êtes pas déjà. Si vous avez installé le module avec npm install, il sera sous node_modules/<module_name>)

EDIT 2 : mis à jour selon la réponse de @ jeff-dickey

Fergie
la source
Agréable! Un peu plus rapide que d'exécuter "npm list" comme le suggèrent les autres réponses (~ 1s au lieu de ~ 20s) - du moins lorsque vous avez cet extrait de code prêt! (il devrait vraiment y avoir un plugin npm pour faire ça ...)
Venryx
1
ounode -p "require('./package.json').version"
Jeff Dickey
2
La version actuelle ne sera pas installée s'il existe un délimiteur de plage comme ^ ~
geedew
21

Pour les packages locaux

npm list --depth=0

Pour les packages globaux

npm list  -g --depth=0
Farhan Yaseen
la source
21

La combinaison de certaines des réponses ci-dessus et produit une recherche super simple et super rapide.
Exécuter à partir de la racine du projet. Pas besoin de rentrer cddans un dossier, juste 1 ligne:

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

JoshuaDavid
la source
21

Vous pouvez également vérifier la version avec cette commande:

npm info <package name> version

Sobin Sunny
la source
29
Encore une fois, il affiche la dernière version disponible dans le registre des packages et non la version du package actuellement installé.
David Ferenczy Rogožan
@DawidFerenczy D'accord avec sa dernière version uniquement comme info npm httpaction
Nitin.
16

Si vous acceptez d'installer jq , vous pouvez utiliser la sortie JSON de npm list.

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

ou, si vous voulez être verbeux

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

Par exemple:

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

En outre, le format JSON est légèrement différent pour les packages globaux, vous devrez donc modifier la requête.

Par exemple:

$ npm -j -g ls | jq -r .dependencies.ghost.version
0.4.2
Benoit Blanchon
la source
14

Si vous êtes assez courageux (et avez nodeinstallé), vous pouvez toujours faire quelque chose comme:

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

Cela imprimera la version du package actuel. Vous pouvez également le modifier pour devenir fou, comme ceci:

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

Cela imprimera la version du WHATEVER_PACKAGE_NAMEpaquet, qui est vue par npm version.

KundraLaci
la source
node -e "console.log(require('./package.json').version);"
papiro
12

Pour voir tous les packages installés localement ou globalement, utilisez ces commandes:

  1. npm listpour les packages locaux ou npm list -gpour les packages installés globalement.
  2. npm list --depth=0
  3. npm list | sls <package name>
  4. node -v
Shekhar Tyagi
la source
10

Essayez avec:

npm list --depth 1 --global packagename
Eduardo Cuomo
la source
10

J'ai construit un outil qui fait exactement cela - qnm

qnm - Un utilitaire CLI simple pour interroger le node_modulesrépertoire.

Installez-le en utilisant:

npm i --global qnm

et courir:

qnm [module]

par exemple:

> qnm lodash

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

Ce qui signifie que nous avons lodashinstallé dans la racine du node_moduleset deux autres exemplaires dans le node_modulesde cli-table2et karma.

C'est très rapide et a de belles fonctionnalités comme la complétion des onglets et la recherche de correspondance.

Ran Yitzhaki
la source
9

Pour répertorier les packages locaux avec le numéro de version, utilisez:

npm ls --depth=0

Pour répertorier les packages globaux avec le numéro de version, utilisez:

npm ls -g --depth=0

kavigun
la source
8

Vous pouvez utiliser vue NPM la version [module] , informations NPM Version [module] , NPM affichage de la version [module] ou NPM v la version [module] pour vérifier la version sur un module NPM installé.

Supposons que ma version du module grunt soit 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
Sérgio
la source
15
Tous ceux-ci montrent la dernière version disponible, pas la version actuellement installée
sth
8

npm list --depth 0 est la commande qui affiche toutes les bibliothèques avec la version mais vous pouvez utiliser npm-check

npm-check est une bonne bibliothèque pour gérer toutes ces choses concernant l'événement système de version, il affichera les versions des bibliothèques, la mise à jour de la nouvelle version, la version inutilisée et bien d'autres.

pour l'installer il suffit d'exécuter

npm install -g npm-check

et exécutez simplement

npm-check

vérifiez la capture d'écran qui montre tout sur la version du package, la mise à jour de la nouvelle version et la version inutilisée.

entrez la description de l'image ici

Cela fonctionne aussi à l'échelle mondiale. Essaie. J'espère que cela aidera quelqu'un.

Mahendra Pratap
la source
7

Voici un Unix portable ( en utilisant grepet sed) une doublure qui renvoie la chaîne de version d'un paquet NPM globalement installé (retirer les gde -pgrecherche de paquetages locaux à la place):

$ npm ll -pg --depth=0 grunt | grep -o "@.*:" | sed 's/.$//; s/^.//'
0.4.5
  • les npm llsorties une chaîne analysable en forme comme: /usr/lib/node_modules/npm:[email protected]:;
  • la grepcommande extrait la valeur entre @et :, inclusivement;
  • la sedcommande supprime les personnages environnants.
wjordan
la source
6

J'ai ajouté ceci à mon .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

Il ne me reste plus qu'à taper:

  • npmv pour la version de npm par exemple:NPM version is: 4.2.0
  • npmv <package-name> pour la version locale, par exemple:0.8.08
  • npmv <package-name> g pour la version globale, par exemple:0.8.09
  • npmv <package-name> l pour la dernière version, par exemple:0.8.10

Remarque -d sur la commande de coupe signifie délimiter par, suivi de @, puis f signifie champ le 2 signifie deuxième champ car il y aura un côté ou l'autre du symbole @.

JGFMK
la source
5

Vous pouvez essayer ceci: npm show {package} versionaffiche la dernière version du package. Et si votre package est obsolète, npm outdatedl'affichera avec les informations de version.

Aliaksei
la source
2
L'OP posait des questions sur la version du package actuellement installé , et non sur la dernière version disponible dans le registre des packages.
David Ferenczy Rogožan
5

C'est une question simple, et devrait avoir une réponse plus simple que ce que je vois ci-dessus.

Pour voir les packages npm installés avec leur version, la commande est npm ls --depth=0, qui, par défaut, affiche ce qui est installé localement. Pour voir les paquets installés globalement, ajoutez l' -globalargument: npm ls --depth=0 -global.

--depth=0 renvoie une liste des packages installés sans leurs dépendances, ce que vous souhaitez faire la plupart du temps.

lsest le nom de la commande et list est un alias pour ls.

zumafra
la source
3

Accéder au package.json

Vous pouvez accéder au package.jsonou bower.jsondu package avec:

notepad ./node_modules/:packageName/package.json

Cela ouvrira le package.jsondans notepadlequel a le version numberdu :packageNamevous inclus dans le command.

Par exemple :

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

Bonne chance.

Akash
la source
6
Non seulement il existe des moyens beaucoup plus faciles de le faire, la version que vous avez spécifiée dans votre package.json n'est peut-être pas réellement la version installée en raison des notations de plage semver. Autrement dit, une dépendance peut être spécifié en tant que version ^ 1.3.0, mais cela peut vouloir dire quoi que ce soit de la version 1.3.0 à 1.99.99
isochrone
3

Nous pouvons utiliser npm view any-promise (le nom de votre module) -v

Nitine.
la source
1
Cela montre la dernière version disponible, pas la version dans le répertoire local.
christianbundy
@christianbundy vous pouvez utiliser la liste npm --depth = 0 | grep uuid
Nitine.
J'ai dû utiliser npm list --depth=0 | grep uuid | awk '{ print $2; }' | cut -d '@' -f 2, mais oui, cela fonctionne tant que c'est une dépendance de haut niveau. Je ne pense pas que ce soit toujours le cas cependant, sur la base de la question d'origine.
christianbundy
2

npm list package-name donne la version actuellement installée

Nandhiny Durai
la source
0

Son très simple..Type juste en dessous de la ligne

npm view < package-name > version

** Exemple **

npm view redux version

J'ai la version 7.2.0 de redux

Daksh Patel
la source