node.js - update - Find the version of an installed npm package




npm version (14)

How to find the version of an installed node.js/npm package?

This prints the version of npm itself:

npm -v <package-name>

This prints a cryptic error:

npm version <package-name>

This prints the package version on the registry (i.e. the latest version available):

npm view <package-name> version

How do I get the installed version?


Access the package.json

You can access the package.json or bower.json of the package with:

notepad ./node_modules/:packageName/package.json

This will open the package.json in notepad which has the version number of the :packageName you included in the command.

For example :

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

Good Luck.


npm list for local packages or npm list -g for globally installed packages.

You can find the version of a specific package by passing its name as an argument. For example, npm list grunt will result in:

[email protected] /path/to/project/folder
└── [email protected]

Alternatively, you can just run npm list without passing a package name as an argument to see the versions of all your packages:

├─┬ [email protected] 
│ └── [email protected] 
├── [email protected] 
├── [email protected] 
├─┬ [email protected] 
│ ├── [email protected] 
│ └── [email protected] 
└── [email protected] 

Another quick way of finding out what packages are installed locally and without their dependencies is to use:

npm list --depth=0

Which gives you something like

├── [email protected]
├── [email protected]
├── [email protected]
├── [email protected]
├── [email protected]
├── [email protected]
├── [email protected]
├── [email protected]
├── [email protected]
├── [email protected]
├── [email protected]
└── [email protected]

Obviously, the same can be done globally with npm list -g --depth=0.

This method is clearer in case you have installed a lot of packages.

To find out which packages need to be updated, you can use npm outdated -g --depth=0.


Combining some of the above answers and produces a super simple and super quick lookup.
Run from project root. No need to cd into any folder, just 1 line:

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


From the root of the package do:

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

EDIT: (so you need to cd into the module's home directory if you are not already there. If you have installed the module with npm install, then it will be under node_modules/<module_name>)

EDIT 2: updated as per answer from @jeff-dickey


Here's a portable Unix (using grep and sed) one-liner that returns the version string of a globally-installed npm package (remove the g from -pg to query local packages instead):

$ npm ll -pg --depth=0 grunt | grep -o "@.*:" | sed 's/.$//; s/^.//'
0.4.5
  • the npm ll outputs a parseable string formatted like: /usr/lib/node_modules/npm:[email protected]:;
  • the grep command extracts the value between @ and :, inclusive;
  • the sed command removes the surrounding characters.

I just used npm list | grep <package name> and it worked great

On windows run:

npm list | find <package name>

In PowerShell run:

npm list | sls <package name>


I've built a tool that does exactly that - qnm

qnm - A simple CLI utility for querying the node_modules directory.

Install it using:

npm i --global qnm

and run:

qnm [module]

for example:

> qnm lodash

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

Which means we have lodash installed in the root of the node_modules and two other copies in the node_modules of cli-table2 and karma.

It's really fast, and has some nice features like tab completion and match search.


If you are brave enough (and have node installed), you can always do something like:

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

This will print the version of the current package. You can also modify it to go insane, like this:

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

That will print the version of WHATEVER_PACKAGE_NAME package, that is seen by npm version.


To see all the installed packages locally or globally, use these commands:

  1. npm list for local packages or npm list -g for globally installed packages.
  2. npm list --depth=0
  3. npm list | sls <package name>
  4. node -v

We can use npm view any-promise(your module name) -v


You can also check the version by this command.

npm info <package name > version


You may try this: npm show {package} version shows the latest package version. And if your package is outdated, npm outdated will show it with version info.


npm info YOUR_PACKAGE version

e.g.

npm info grunt version
0.4.5




npm