119 lines
2.9 KiB
Groff
119 lines
2.9 KiB
Groff
.TH "NPM-EXPLAIN" "1" "February 2023" "" ""
|
|
.SH "NAME"
|
|
\fBnpm-explain\fR - Explain installed packages
|
|
.SS "Synopsis"
|
|
.P
|
|
.RS 2
|
|
.nf
|
|
npm explain <package-spec>
|
|
|
|
alias: why
|
|
.fi
|
|
.RE
|
|
.SS "Description"
|
|
.P
|
|
This command will print the chain of dependencies causing a given package to be installed in the current project.
|
|
.P
|
|
If one or more package specs are provided, then only packages matching one of the specifiers will have their relationships explained.
|
|
.P
|
|
The package spec can also refer to a folder within \fB./node_modules\fR
|
|
.P
|
|
For example, running \fBnpm explain glob\fR within npm's source tree will show:
|
|
.P
|
|
.RS 2
|
|
.nf
|
|
glob@7.1.6
|
|
node_modules/glob
|
|
glob@"^7.1.4" from the root project
|
|
|
|
glob@7.1.1 dev
|
|
node_modules/tacks/node_modules/glob
|
|
glob@"^7.0.5" from rimraf@2.6.2
|
|
node_modules/tacks/node_modules/rimraf
|
|
rimraf@"^2.6.2" from tacks@1.3.0
|
|
node_modules/tacks
|
|
dev tacks@"^1.3.0" from the root project
|
|
.fi
|
|
.RE
|
|
.P
|
|
To explain just the package residing at a specific folder, pass that as the argument to the command. This can be useful when trying to figure out exactly why a given dependency is being duplicated to satisfy conflicting version requirements within the project.
|
|
.P
|
|
.RS 2
|
|
.nf
|
|
$ npm explain node_modules/nyc/node_modules/find-up
|
|
find-up@3.0.0 dev
|
|
node_modules/nyc/node_modules/find-up
|
|
find-up@"^3.0.0" from nyc@14.1.1
|
|
node_modules/nyc
|
|
nyc@"^14.1.1" from tap@14.10.8
|
|
node_modules/tap
|
|
dev tap@"^14.10.8" from the root project
|
|
.fi
|
|
.RE
|
|
.SS "Configuration"
|
|
.SS "\fBjson\fR"
|
|
.RS 0
|
|
.IP \(bu 4
|
|
Default: false
|
|
.IP \(bu 4
|
|
Type: Boolean
|
|
.RE 0
|
|
|
|
.P
|
|
Whether or not to output JSON data, rather than the normal output.
|
|
.RS 0
|
|
.IP \(bu 4
|
|
In \fBnpm pkg set\fR it enables parsing set values with JSON.parse() before saving them to your \fBpackage.json\fR.
|
|
.RE 0
|
|
|
|
.P
|
|
Not supported by all npm commands.
|
|
.SS "\fBworkspace\fR"
|
|
.RS 0
|
|
.IP \(bu 4
|
|
Default:
|
|
.IP \(bu 4
|
|
Type: String (can be set multiple times)
|
|
.RE 0
|
|
|
|
.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\fR config are either:
|
|
.RS 0
|
|
.IP \(bu 4
|
|
Workspace names
|
|
.IP \(bu 4
|
|
Path to a workspace directory
|
|
.IP \(bu 4
|
|
Path to a parent workspace directory (will result in selecting all workspaces within that folder)
|
|
.RE 0
|
|
|
|
.P
|
|
When set for the \fBnpm init\fR 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.
|
|
.SS "See Also"
|
|
.RS 0
|
|
.IP \(bu 4
|
|
npm help "package spec"
|
|
.IP \(bu 4
|
|
npm help config
|
|
.IP \(bu 4
|
|
npm help npmrc
|
|
.IP \(bu 4
|
|
npm help folders
|
|
.IP \(bu 4
|
|
npm help ls
|
|
.IP \(bu 4
|
|
npm help install
|
|
.IP \(bu 4
|
|
npm help link
|
|
.IP \(bu 4
|
|
npm help prune
|
|
.IP \(bu 4
|
|
npm help outdated
|
|
.IP \(bu 4
|
|
npm help update
|
|
.RE 0
|