2019-11-05 14:55:08 -05:00
|
|
|
---
|
|
|
|
title: npm-ls
|
2020-11-01 07:54:36 +01:00
|
|
|
section: 1
|
2019-11-05 14:55:08 -05:00
|
|
|
description: List installed packages
|
|
|
|
---
|
2011-11-21 09:48:45 -08:00
|
|
|
|
2019-11-05 14:55:08 -05:00
|
|
|
### Synopsis
|
2011-11-21 09:48:45 -08:00
|
|
|
|
2019-11-05 14:55:08 -05:00
|
|
|
```bash
|
|
|
|
npm ls [[<@scope>/]<pkg> ...]
|
|
|
|
|
|
|
|
aliases: list, la, ll
|
|
|
|
```
|
|
|
|
|
|
|
|
### Description
|
2011-11-21 09:48:45 -08:00
|
|
|
|
|
|
|
This command will print to stdout all the versions of packages that are
|
2020-12-11 18:54:56 -05:00
|
|
|
installed, as well as their dependencies when `--all` is specified, in a
|
|
|
|
tree structure.
|
2011-11-21 09:48:45 -08:00
|
|
|
|
2020-12-11 18:54:56 -05:00
|
|
|
Note: to get a "bottoms up" view of why a given package is included in the
|
|
|
|
tree at all, use [`npm explain`](/commands/npm-explain).
|
|
|
|
|
|
|
|
Positional arguments are `name@version-range` identifiers, which will limit
|
|
|
|
the results to only the paths to the packages named. Note that nested
|
|
|
|
packages will *also* show the paths to the specified packages. For
|
|
|
|
example, running `npm ls promzard` in npm's source tree will show:
|
2011-11-21 09:48:45 -08:00
|
|
|
|
2019-11-05 14:55:08 -05:00
|
|
|
```bash
|
2020-12-11 18:54:56 -05:00
|
|
|
npm@@VERSION@ /path/to/npm
|
|
|
|
└─┬ init-package-json@0.0.4
|
|
|
|
└── promzard@0.1.5
|
2019-11-05 14:55:08 -05:00
|
|
|
```
|
2012-07-13 11:40:38 -07:00
|
|
|
|
2013-07-09 13:09:02 -07:00
|
|
|
It will print out extraneous, missing, and invalid packages.
|
|
|
|
|
|
|
|
If a project specifies git urls for dependencies these are shown
|
|
|
|
in parentheses after the name@version to make it easier for users to
|
|
|
|
recognize potential forks of a project.
|
2011-11-21 09:48:45 -08:00
|
|
|
|
2015-10-09 23:13:57 -07:00
|
|
|
The tree shown is the logical dependency tree, based on package
|
2020-12-11 18:54:56 -05:00
|
|
|
dependencies, not the physical layout of your `node_modules` folder.
|
2015-10-09 23:13:57 -07:00
|
|
|
|
2011-11-21 09:48:45 -08:00
|
|
|
When run as `ll` or `la`, it shows extended information by default.
|
|
|
|
|
2020-12-11 18:54:56 -05:00
|
|
|
### Note: Design Changes Pending
|
|
|
|
|
|
|
|
The `npm ls` command's output and behavior made a _ton_ of sense when npm
|
|
|
|
created a `node_modules` folder that naively nested every dependency. In
|
|
|
|
such a case, the logical dependency graph and physical tree of packages on
|
|
|
|
disk would be roughly identical.
|
|
|
|
|
|
|
|
With the advent of automatic install-time deduplication of dependencies in
|
|
|
|
npm v3, the `ls` output was modified to display the logical dependency
|
|
|
|
graph as a tree structure, since this was more useful to most users.
|
|
|
|
However, without using `npm ls -l`, it became impossible show _where_ a
|
|
|
|
package was actually installed much of the time!
|
|
|
|
|
|
|
|
With the advent of automatic installation of `peerDependencies` in npm v7,
|
|
|
|
this gets even more curious, as `peerDependencies` are logically
|
|
|
|
"underneath" their dependents in the dependency graph, but are always
|
|
|
|
physically at or above their location on disk.
|
|
|
|
|
|
|
|
Also, in the years since npm got an `ls` command (in version 0.0.2!),
|
2021-01-07 16:12:19 -05:00
|
|
|
dependency graphs have gotten much larger as a general rule. Therefore, in
|
2020-12-11 18:54:56 -05:00
|
|
|
order to avoid dumping an excessive amount of content to the terminal, `npm
|
|
|
|
ls` now only shows the _top_ level dependencies, unless `--all` is
|
|
|
|
provided.
|
|
|
|
|
|
|
|
A thorough re-examination of the use cases, intention, behavior, and output
|
|
|
|
of this command, is currently underway. Expect significant changes to at
|
|
|
|
least the default human-readable `npm ls` output in npm v8.
|
|
|
|
|
2019-11-05 14:55:08 -05:00
|
|
|
### Configuration
|
2011-11-21 09:48:45 -08:00
|
|
|
|
2020-12-11 18:54:56 -05:00
|
|
|
#### all
|
|
|
|
|
|
|
|
* Default: `false`
|
|
|
|
* Type: Boolean
|
|
|
|
|
|
|
|
When running `npm outdated` and `npm ls`, setting `--all` will show all
|
|
|
|
outdated or installed packages, rather than only those directly depended
|
|
|
|
upon by the current project.
|
|
|
|
|
2019-11-05 14:55:08 -05:00
|
|
|
#### json
|
2012-05-05 22:33:06 -07:00
|
|
|
|
|
|
|
* Default: false
|
|
|
|
* Type: Boolean
|
|
|
|
|
|
|
|
Show information in JSON format.
|
|
|
|
|
2019-11-05 14:55:08 -05:00
|
|
|
#### long
|
2011-11-21 09:48:45 -08:00
|
|
|
|
|
|
|
* Default: false
|
|
|
|
* Type: Boolean
|
|
|
|
|
|
|
|
Show extended information.
|
|
|
|
|
2019-11-05 14:55:08 -05:00
|
|
|
#### parseable
|
2011-11-21 09:48:45 -08:00
|
|
|
|
|
|
|
* Default: false
|
|
|
|
* Type: Boolean
|
|
|
|
|
|
|
|
Show parseable output instead of tree view.
|
|
|
|
|
2019-11-05 14:55:08 -05:00
|
|
|
#### global
|
2011-11-21 09:48:45 -08:00
|
|
|
|
|
|
|
* Default: false
|
|
|
|
* Type: Boolean
|
|
|
|
|
|
|
|
List packages in the global install prefix instead of in the current
|
|
|
|
project.
|
|
|
|
|
2019-11-05 14:55:08 -05:00
|
|
|
#### depth
|
2014-02-12 18:16:32 -08:00
|
|
|
|
|
|
|
* Type: Int
|
|
|
|
|
|
|
|
Max display depth of the dependency tree.
|
|
|
|
|
2019-11-05 14:55:08 -05:00
|
|
|
#### prod / production
|
2015-03-06 02:57:32 -06:00
|
|
|
|
|
|
|
* Type: Boolean
|
|
|
|
* Default: false
|
|
|
|
|
|
|
|
Display only the dependency tree for packages in `dependencies`.
|
|
|
|
|
2019-11-05 14:55:08 -05:00
|
|
|
#### dev / development
|
2015-03-06 02:57:32 -06:00
|
|
|
|
|
|
|
* Type: Boolean
|
|
|
|
* Default: false
|
|
|
|
|
|
|
|
Display only the dependency tree for packages in `devDependencies`.
|
|
|
|
|
2019-11-05 14:55:08 -05:00
|
|
|
#### only
|
2015-10-09 23:13:57 -07:00
|
|
|
|
|
|
|
* Type: String
|
|
|
|
|
|
|
|
When "dev" or "development", is an alias to `dev`.
|
|
|
|
|
2016-07-01 14:35:20 -07:00
|
|
|
When "prod" or "production", is an alias to `production`.
|
2015-10-09 23:13:57 -07:00
|
|
|
|
2019-11-05 14:55:08 -05:00
|
|
|
#### link
|
2017-07-14 10:52:48 -07:00
|
|
|
|
|
|
|
* Type: Boolean
|
|
|
|
* Default: false
|
|
|
|
|
|
|
|
Display only dependencies which are linked
|
|
|
|
|
2019-11-05 14:55:08 -05:00
|
|
|
#### unicode
|
|
|
|
|
|
|
|
* Type: Boolean
|
|
|
|
* Default: true
|
|
|
|
|
|
|
|
Whether to represent the tree structure using unicode characters.
|
|
|
|
Set it to false in order to use all-ansi output.
|
|
|
|
|
|
|
|
### See Also
|
|
|
|
|
2020-12-11 18:54:56 -05:00
|
|
|
* [npm explain](/commands/npm-explain)
|
2020-11-01 07:54:36 +01:00
|
|
|
* [npm config](/commands/npm-config)
|
2019-11-05 14:55:08 -05:00
|
|
|
* [npmrc](/configuring-npm/npmrc)
|
|
|
|
* [npm folders](/configuring-npm/folders)
|
2020-11-01 07:54:36 +01:00
|
|
|
* [npm explain](/commands/npm-explain)
|
|
|
|
* [npm install](/commands/npm-install)
|
|
|
|
* [npm link](/commands/npm-link)
|
|
|
|
* [npm prune](/commands/npm-prune)
|
|
|
|
* [npm outdated](/commands/npm-outdated)
|
|
|
|
* [npm update](/commands/npm-update)
|