123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354 |
- .TH "NPM\-LS" "1" "October 2021" "" ""
- .SH "NAME"
- \fBnpm-ls\fR \- List installed packages
- .SS Synopsis
- .P
- .RS 2
- .nf
- npm ls [[<@scope>/]<pkg> \.\.\.]
- aliases: list, la, ll
- .fi
- .RE
- .SS Description
- .P
- This command will print to stdout all the versions of packages that are
- installed, as well as their dependencies when \fB\-\-all\fP is specified, in a
- tree structure\.
- .P
- Note: to get a "bottoms up" view of why a given package is included in the
- tree at all, use npm help \fBexplain\fP\|\.
- .P
- Positional arguments are \fBname@version\-range\fP identifiers, which will limit
- the results to only the paths to the packages named\. Note that nested
- packages will \fIalso\fR show the paths to the specified packages\. For
- example, running \fBnpm ls promzard\fP in npm's source tree will show:
- .P
- .RS 2
- .nf
- npm@8\.1\.2 /path/to/npm
- └─┬ init\-package\-json@0\.0\.4
- └── promzard@0\.1\.5
- .fi
- .RE
- .P
- It will print out extraneous, missing, and invalid packages\.
- .P
- 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\.
- .P
- The tree shown is the logical dependency tree, based on package
- dependencies, not the physical layout of your \fBnode_modules\fP folder\.
- .P
- When run as \fBll\fP or \fBla\fP, it shows extended information by default\.
- .SS Note: Design Changes Pending
- .P
- The \fBnpm ls\fP command's output and behavior made a \fIton\fR of sense when npm
- created a \fBnode_modules\fP 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\.
- .P
- With the advent of automatic install\-time deduplication of dependencies in
- npm v3, the \fBls\fP output was modified to display the logical dependency
- graph as a tree structure, since this was more useful to most users\.
- However, without using \fBnpm ls \-l\fP, it became impossible show \fIwhere\fR a
- package was actually installed much of the time!
- .P
- With the advent of automatic installation of \fBpeerDependencies\fP in npm v7,
- this gets even more curious, as \fBpeerDependencies\fP are logically
- "underneath" their dependents in the dependency graph, but are always
- physically at or above their location on disk\.
- .P
- Also, in the years since npm got an \fBls\fP command (in version 0\.0\.2!),
- dependency graphs have gotten much larger as a general rule\. Therefore, in
- order to avoid dumping an excessive amount of content to the terminal, \fBnpm
- ls\fP now only shows the \fItop\fR level dependencies, unless \fB\-\-all\fP is
- provided\.
- .P
- 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 \fBnpm ls\fP output in npm v8\.
- .SS Configuration
- <!\-\- AUTOGENERATED CONFIG DESCRIPTIONS START \-\->
- <!\-\- automatically generated, do not edit manually \-\->
- <!\-\- see lib/utils/config/definitions\.js \-\->
- .SS \fBall\fP
- .RS 0
- .IP \(bu 2
- Default: false
- .IP \(bu 2
- Type: Boolean
- .RE
- .P
- When running \fBnpm outdated\fP and \fBnpm ls\fP, setting \fB\-\-all\fP will show all
- outdated or installed packages, rather than only those directly depended
- upon by the current project\.
- <!\-\- automatically generated, do not edit manually \-\->
- <!\-\- see lib/utils/config/definitions\.js \-\->
- .SS \fBjson\fP
- .RS 0
- .IP \(bu 2
- Default: false
- .IP \(bu 2
- Type: Boolean
- .RE
- .P
- Whether or not to output JSON data, rather than the normal output\.
- .RS 0
- .IP \(bu 2
- In \fBnpm pkg set\fP it enables parsing set values with JSON\.parse() before
- saving them to your \fBpackage\.json\fP\|\.
- .RE
- .P
- Not supported by all npm commands\.
- <!\-\- automatically generated, do not edit manually \-\->
- <!\-\- see lib/utils/config/definitions\.js \-\->
- .SS \fBlong\fP
- .RS 0
- .IP \(bu 2
- Default: false
- .IP \(bu 2
- Type: Boolean
- .RE
- .P
- Show extended information in \fBls\fP, \fBsearch\fP, and \fBhelp\-search\fP\|\.
- <!\-\- automatically generated, do not edit manually \-\->
- <!\-\- see lib/utils/config/definitions\.js \-\->
- .SS \fBparseable\fP
- .RS 0
- .IP \(bu 2
- Default: false
- .IP \(bu 2
- Type: Boolean
- .RE
- .P
- Output parseable results from commands that write to standard output\. For
- \fBnpm search\fP, this will be tab\-separated table format\.
- <!\-\- automatically generated, do not edit manually \-\->
- <!\-\- see lib/utils/config/definitions\.js \-\->
- .SS \fBglobal\fP
- .RS 0
- .IP \(bu 2
- Default: false
- .IP \(bu 2
- Type: Boolean
- .RE
- .P
- Operates in "global" mode, so that packages are installed into the \fBprefix\fP
- folder instead of the current working directory\. See
- npm help folders for more on the differences in behavior\.
- .RS 0
- .IP \(bu 2
- packages are installed into the \fB{prefix}/lib/node_modules\fP folder, instead
- of the current working directory\.
- .IP \(bu 2
- bin files are linked to \fB{prefix}/bin\fP
- .IP \(bu 2
- man pages are linked to \fB{prefix}/share/man\fP
- .RE
- <!\-\- automatically generated, do not edit manually \-\->
- <!\-\- see lib/utils/config/definitions\.js \-\->
- .SS \fBdepth\fP
- .RS 0
- .IP \(bu 2
- Default: \fBInfinity\fP if \fB\-\-all\fP is set, otherwise \fB1\fP
- .IP \(bu 2
- Type: null or Number
- .RE
- .P
- The depth to go when recursing packages for \fBnpm ls\fP\|\.
- .P
- If not set, \fBnpm ls\fP will show only the immediate dependencies of the root
- project\. If \fB\-\-all\fP is set, then npm will show all dependencies by default\.
- <!\-\- automatically generated, do not edit manually \-\->
- <!\-\- see lib/utils/config/definitions\.js \-\->
- .SS \fBomit\fP
- .RS 0
- .IP \(bu 2
- Default: 'dev' if the \fBNODE_ENV\fP environment variable is set to
- \|'production', otherwise empty\.
- .IP \(bu 2
- Type: "dev", "optional", or "peer" (can be set multiple times)
- .RE
- .P
- Dependency types to omit from the installation tree on disk\.
- .P
- Note that these dependencies \fIare\fR still resolved and added to the
- \fBpackage\-lock\.json\fP or \fBnpm\-shrinkwrap\.json\fP file\. They are just not
- physically installed on disk\.
- .P
- If a package type appears in both the \fB\-\-include\fP and \fB\-\-omit\fP lists, then
- it will be included\.
- .P
- If the resulting omit list includes \fB\|'dev'\fP, then the \fBNODE_ENV\fP environment
- variable will be set to \fB\|'production'\fP for all lifecycle scripts\.
- <!\-\- automatically generated, do not edit manually \-\->
- <!\-\- see lib/utils/config/definitions\.js \-\->
- .SS \fBlink\fP
- .RS 0
- .IP \(bu 2
- Default: false
- .IP \(bu 2
- Type: Boolean
- .RE
- .P
- Used with \fBnpm ls\fP, limiting output to only those packages that are linked\.
- <!\-\- automatically generated, do not edit manually \-\->
- <!\-\- see lib/utils/config/definitions\.js \-\->
- .SS \fBpackage\-lock\-only\fP
- .RS 0
- .IP \(bu 2
- Default: false
- .IP \(bu 2
- Type: Boolean
- .RE
- .P
- If set to true, the current operation will only use the \fBpackage\-lock\.json\fP,
- ignoring \fBnode_modules\fP\|\.
- .P
- For \fBupdate\fP this means only the \fBpackage\-lock\.json\fP will be updated,
- instead of checking \fBnode_modules\fP and downloading dependencies\.
- .P
- For \fBlist\fP this means the output will be based on the tree described by the
- \fBpackage\-lock\.json\fP, rather than the contents of \fBnode_modules\fP\|\.
- <!\-\- automatically generated, do not edit manually \-\->
- <!\-\- see lib/utils/config/definitions\.js \-\->
- .SS \fBunicode\fP
- .RS 0
- .IP \(bu 2
- Default: false on windows, true on mac/unix systems with a unicode locale,
- as defined by the \fBLC_ALL\fP, \fBLC_CTYPE\fP, or \fBLANG\fP environment variables\.
- .IP \(bu 2
- Type: Boolean
- .RE
- .P
- When set to true, npm uses unicode characters in the tree output\. When
- false, it uses ascii characters instead of unicode glyphs\.
- <!\-\- automatically generated, do not edit manually \-\->
- <!\-\- see lib/utils/config/definitions\.js \-\->
- .SS \fBworkspace\fP
- .RS 0
- .IP \(bu 2
- Default:
- .IP \(bu 2
- Type: String (can be set multiple times)
- .RE
- .P
- Enable running a command in the context of the configured workspaces of the
- current project while filtering by running only the workspaces defined by
- this configuration option\.
- .P
- Valid values for the \fBworkspace\fP config are either:
- .RS 0
- .IP \(bu 2
- Workspace names
- .IP \(bu 2
- Path to a workspace directory
- .IP \(bu 2
- Path to a parent workspace directory (will result in selecting all
- workspaces within that folder)
- .RE
- .P
- When set for the \fBnpm init\fP command, this may be set to the folder of a
- workspace which does not yet exist, to create the folder and set it up as a
- brand new workspace within the project\.
- .P
- This value is not exported to the environment for child processes\.
- <!\-\- automatically generated, do not edit manually \-\->
- <!\-\- see lib/utils/config/definitions\.js \-\->
- .SS \fBworkspaces\fP
- .RS 0
- .IP \(bu 2
- Default: null
- .IP \(bu 2
- Type: null or Boolean
- .RE
- .P
- Set to true to run the command in the context of \fBall\fR configured
- workspaces\.
- .P
- Explicitly setting this to false will cause commands like \fBinstall\fP to
- ignore workspaces altogether\. When not set explicitly:
- .RS 0
- .IP \(bu 2
- Commands that operate on the \fBnode_modules\fP tree (install, update, etc\.)
- will link workspaces into the \fBnode_modules\fP folder\. \- Commands that do
- other things (test, exec, publish, etc\.) will operate on the root project,
- \fIunless\fR one or more workspaces are specified in the \fBworkspace\fP config\.
- .RE
- .P
- This value is not exported to the environment for child processes\.
- <!\-\- automatically generated, do not edit manually \-\->
- <!\-\- see lib/utils/config/definitions\.js \-\->
- .SS \fBinclude\-workspace\-root\fP
- .RS 0
- .IP \(bu 2
- Default: false
- .IP \(bu 2
- Type: Boolean
- .RE
- .P
- Include the workspace root when workspaces are enabled for a command\.
- .P
- When false, specifying individual workspaces via the \fBworkspace\fP config, or
- all workspaces via the \fBworkspaces\fP flag, will cause npm to operate only on
- the specified workspaces, and not on the root project\.
- <!\-\- automatically generated, do not edit manually \-\->
- <!\-\- see lib/utils/config/definitions\.js \-\->
- <!\-\- AUTOGENERATED CONFIG DESCRIPTIONS END \-\->
- .SS See Also
- .RS 0
- .IP \(bu 2
- npm help explain
- .IP \(bu 2
- npm help config
- .IP \(bu 2
- npm help npmrc
- .IP \(bu 2
- npm help folders
- .IP \(bu 2
- npm help explain
- .IP \(bu 2
- npm help install
- .IP \(bu 2
- npm help link
- .IP \(bu 2
- npm help prune
- .IP \(bu 2
- npm help outdated
- .IP \(bu 2
- npm help update
- .RE
|