How do I list the user-installed / environment package only in npm?
When I do npm -g list
, it outputs every package and their dependencies. Instead I'd like to see the packages installed in the current working project or environment.
npm list -g --depth=0
-g
option it only shows the current directory’s packages)--depth=0
option is not mentioned when I run npm help ls
?
--prefix
, then you need to add the --prefix
too into this npm list
command.
Commented
Aug 6, 2018 at 4:06
npm config set depth 0
to make it the default.
Commented
Sep 17, 2018 at 12:15
| grep -v "duped"
to remove duplicated dependencies onto the list
Commented
Feb 8, 2019 at 21:23
You can get a list of all globally installed modules using:
ls `npm root -g`
npm list -g --depth=0
which prints out the version which is nice. Anyways, I didn't know about this command so +1 for that.
As of 13 December 2015
While I found the accepted answer 100% correct, and useful, I wished to expand upon it a little based on my own experiences, and hopefully for the benefit of others too. (Here I am using the terms package and module interchangeably)
In an answer to the question, yes the accepted answer would be:
npm list -g --depth=0
You might wish to check for a particular module installed globally, on Unix-like systems or when grep is available. This is particularly useful when checking what version of a module you are using (globally installed; just remove the -g
flag if checking a local module):
npm list -g --depth=0 | grep <module_name>
If you'd like to see all available (remote) versions for a particular module, then do:
npm view <module_name> versions
Note, versions is plural. This will give you the full listing of versions to choose from.
For the latest remote version:
npm view <module_name> version
Note, version is singular.
To find out which packages need to be updated, you can use:
npm outdated -g --depth=0
To update global packages, you can use
npm update -g <package>
To update all global packages, you can use:
npm update -g
(However, for npm versions less than 2.6.1, please also see this link as there is a special script that is recommended for globally updating all packages.)
The above commands should work across NPM versions 1.3.x, 1.4.x, 2.x and 3.x.
npm update -g <package>
. I believe update
is preferable to install
here because npm will be smart and do the installation only if the specified package is outdated.
Commented
Jan 27, 2017 at 22:22
This is what I personally prefer and it may be for others too, it may also help during presentations or meetings.
With npm-gui
you can list local and global packages with a better visualization.
You can find the package at
Run the following
// Once
npm install -g npm-gui
cd c:\your-prject-folder
npm-gui localhost:9000
Then open your browser at http:\\localhost:9000
For project dependencies use:
npm list --depth=0
For global dependencies use:
npm list -g --depth=0
Use:
npm ls
npm list
is just an alias for npm ls
.
For the extended information, use:
npm la
npm ll
You can always set --depth=0
at the end to get the first level deep.
npm ls --depth=0
You can check development and production packages.
npm ls --only=dev
npm ls --only=prod
To show the info in json
format
npm ls --json=true
The default is false
npm ls --json=false
You can insist on long format to show extended information.
npm ls --long=true
You can show parseable output instead of tree view.
npm ls --parseable=true
You can list packages in the global install prefix instead of in the current project.
npm ls --global=true
npm ls -g // shorthand
You can find the full documentation here.
As the end of 2021, there are few obvious way to do it. Despite all the other answers are still working, I think an update is needed besides a more defined and complete list of commands possible, and while am I at it, I added some other common commands for whom needs it (install, uninstall, etc.)
# Bare command
npm list
# 'ls' is an alias of list
npm ls
# Don't show dependencies
npm list --depth=0
# Global modules
npm list -g --depth=0
# More info
npm la
npm ll
# Show particular environment packages
npm ls --only=dev
npm ls --only=prod
# Parseable view (tree view)
npm ls --parseable=true
The Node.js documentation is actually pretty well explained regarding the matter. This is a collective list of the main commands.
Before starting, note:
All commands will run the list of installed modules locally. In order to run at the global level, just add a -g
flag at the end of the statement.
See the version of all installed npm packages, including their dependencies.
npm list
>>> /Users/joe/dev/node/cowsay
└─┬ [email protected]
├── [email protected]
├─┬ [email protected]
│ ├── [email protected]
│ └── [email protected]
├─┬ [email protected]
│ ├── [email protected]
│ └─┬ [email protected]
│ └── [email protected]
└── [email protected]
Get only your top-level packages
npm list --depth=0
Get the version of a specific package by specifying its name.
npm list <package-name>
See what's the latest available version of the package on the npm repository
npm view <package-name> version
Install an old version of an npm package using the @
syntax
npm install <package>@<version>
npm install [email protected]
Listing all the previous versions of a package
npm view cowsay versions
[ '1.0.0',
'1.0.1',
'1.0.2',
'1.0.3',
'1.1.0',
'1.1.1',
'1.1.2',
'1.1.3',
....
]
Install a new minor or patch release
npm update
Install a new minor or patch release, but do not update file package.json
npm update --no-save
To discover new releases of the packages, this gives you the list of a few outdated packages in one repository that wasn't updated for quite a while
npm outdated
Some of those updates are major releases. Running npm update won't update the version of those. Major releases are never updated in this way, because they (by definition) introduce breaking changes, and npm wants to save you trouble.
To update all packages to a new major version, install the npm-check-updates package globally:
npm install -g npm-check-updates
ncu -u
This will upgrade all the version hints in the package.json file, to dependencies and devDependencies, so npm can install the new major version
Install in development dependencies.
npm install <package-name> -D
npm install <package-name> --save-dev # The same as above
Avoid installing those development dependencies in production with
npm install --production
npm uninstall <package-name>
npm uninstall -g <package-name> # Globally uninstall
Uninstall a package and remove the reference in the package.json file
npm uninstall <package-name> -S
npm uninstall <package-name> --save # The same as above
Some commands with global flag examples.
npm list -g
npm list --depth=0 -g
npm list <package-name> -g
npm view <package-name> version -g
>= v7.0.0:
npm ls -g
< v7.0.0:
npm ls -g --depth=0
npm ls
only prints the first level of dependencies by default. You can make it print more of the tree by using--depth=<n>
to set a specific depth, or--all
to print all of them.
For the latest release, see the npm documentation: npm-ls, depth
One way might be to find the root directory of modules using:
npm root
Output:
/Users/me/repos/my_project/node_modules
And then list that directory...
ls /Users/me/repos/my_project/node_modules
Output:
grunt grunt-contrib-jshint
The user-installed packages in this case are grunt and grunt-contrib-jshint.
npm list -g --depth=0
Commented
Jan 16, 2015 at 12:41
npm root
it tells me: Users/me/node_modules
which isn't correct. My node_modules lives somewhere else. I guess it depends on how you install node. I use brew
to install my software. I'm guessing this is if you install node from their website using their package installer?
Node.js has a concept of local modules and global modules.
Local modules are located within the current project directory.
Global modules are generally located at the user's home directory, though we can change the path where global modules reside.
npm list
npm list --global
OR npm list --g
// It will list all the top level modules with its dependenciesnpm list -g --depth=0
npm list -g
to get all the globally installed npm packages.To see list of all packages that are installed.
$ npm ls --parseable | awk '{gsub(/\/.*\//,"",$1); print}'| sort -u
show parseable of npm packages list https://docs.npmjs.com/cli/ls#parseable
You can try NPM Desktop manager:
With just one click, you can install/uninstall packages in dev
or global
status.
Folder node_modules contains user-installed packages so change the directory to node_modules and list the items. Core Modules are defined in Node.js's source in the lib/
folder.
Example:
cd ~/node_modules
ls
Output:
express maxmind-native node-whois socket.io ua-parser-js
geoip mongoskin pdfkit tail zeromq
maxmind nodemailer request ua-parser zmq
For local modules, usenpm list --depth 0
.
For global modules, use npm list -g --depth 0
.
Use npm list
and filter by contains using grep
Example:
npm list -g | grep name-of-package
I am using npm version 7.20.3, and it looks like the default depth is 0 already. So in my case, npm list --global
showed only one installed package (npm). I knew I had a lot more packages installed, and I was puzzled at the output.
Eventually, I tried the --depth
parameter and I was able to see all the packages installed: npm list --global --depth=1
to see the other packages installed (set to say 10 to see the whole dependency tree).
npm list -g --depth=0
Update all global:npm update -g