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?
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>
For local packages
npm list --depth=0
For Global packages
npm list -g --depth=0
I've built a tool that does exactly that - qnm
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.
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
npm ll
outputs a parseable string formatted like: /usr/lib/node_modules/npm:[email protected]:
;grep
command extracts the value between @
and :
, inclusive;sed
command removes the surrounding characters.npm list package-name gives the currently installed 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
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
You can also view package.json
to manually in a text editor, see what packages are dependencies. Use this if npm list
isn't working as a manual alternative.
To see all the installed packages locally or globally, use these commands:
npm list
for local packages or npm list -g
for globally installed packages.npm list --depth=0
npm list | sls <package name>
node -v
I've seen some very creative answers, but you can just do this (for global packages add the --global switch):
npm ls package
Example:
npm ls babel-cli
`-- [email protected]
The npm documentation says that npm -ls
This command will print to stdout all the versions of packages that are installed, as well as their dependencies, in a tree-structure.
We can use npm view any-promise(your module name) -v
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
.
notepad ./node_modules/vue-template-compiler/package.json
Good Luck.
Try with:
npm list --depth 1 --global packagename
If you'd like to check for a particular module installed globally, on *nix systems use:
npm list -g --depth=0 | grep <module_name>
To list local packages with the version number use:
npm ls --depth=0
To list global packages with the version number use:
npm ls -g --depth=0
npm view <package> version
- returns the latest available version on the package.
npm list --depth=0
- returns versions of all installed modules without dependencies.
npm list
- returns versions of all modules and dependencies.
And lastly to get node version: node -v
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
.
You can also check the version with this command:
npm info <package name> version
You can use npm view [module] version, npm info [module] version, npm show [module] version or npm v [module] version to check the version on an installed npm module.
Let's suppose my grunt module version is the 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
Its very simple..Just type below line
npm view < package-name > version
** Example **
npm view redux version
I have version 7.2.0 of redux
I added this to my .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
Now all I have to do is type:
NPM version is: 4.2.0
0.8.08
0.8.09
0.8.10
Note -d on cut command means delimit by, followed by @, then f means field the 2 means second field since there will be one either side of the @ symbol.
This is simple question, and should have a simpler answer than what I see above.
To see the installed npm packages with their version, the command is npm ls --depth=0
, which, by default, displays what is installed locally. To see the globally installed packages, add the -global
argument: npm ls --depth=0 -global
.
--depth=0
returns a list of installed packages without their dependencies, which is what you're wanting to do most of the time.
ls
is the name of the command, and list
is an alias for ls
.
If you agree to install jq, you can use the JSON output of npm list
.
npm -j ls <package-name> | jq -r .version
or, if you want to be verbose
npm --json list <package-name> | jq --raw-output '.version'
For instance:
$ npm -j ls ghost | jq -r .version
0.4.2
Also, the JSON format is slightly different for global packages, so you'll need to change the query.
For instance:
$ npm -j -g ls | jq -r .dependencies.ghost.version
0.4.2
npm list --depth 0
is the command which shows all libraries with version but you can use npm-check
npm-check is a good library to manage all those things regarding the version system event it will show libraries versions, new version update, and unused version and many more.
to install it just run
npm install -g npm-check
and simply run
npm-check
check the screenshot it is showing everything about the package version, new version update, and unused version.
It works globally too. give it a try. Hope this help someone.
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
.
Source: Stackoverflow.com