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 ?


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.


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.


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


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

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>

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


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

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"


21

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

npm info <package name> version


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

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.


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


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.


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


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

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.


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:npm@2.14.8:;
  • la grepcommande extrait la valeur entre @et :, inclusivement;
  • la sedcommande supprime les personnages environnants.

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 @.


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.


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.


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.


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


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


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

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.