npm-explain
Select CLI Version:
Table of contents
Synopsis
npm explain <package-spec>alias: why
Description
This command will print the chain of dependencies causing a given package to be installed in the current project.
If one or more package specs are provided, then only packages matching one of the specifiers will have their relationships explained.
The package spec can also refer to a folder within ./node_modules
For example, running npm explain glob
within npm's source tree will show:
glob@7.1.6node_modules/globglob@"^7.1.4" from the root projectglob@7.1.1 devnode_modules/tacks/node_modules/globglob@"^7.0.5" from rimraf@2.6.2node_modules/tacks/node_modules/rimrafrimraf@"^2.6.2" from tacks@1.3.0node_modules/tacksdev tacks@"^1.3.0" from the root project
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.
$ npm explain node_modules/nyc/node_modules/find-upfind-up@3.0.0 devnode_modules/nyc/node_modules/find-upfind-up@"^3.0.0" from nyc@14.1.1node_modules/nycnyc@"^14.1.1" from tap@14.10.8node_modules/tapdev tap@"^14.10.8" from the root project
Configuration
json
- Default: false
- Type: Boolean
Whether or not to output JSON data, rather than the normal output.
- In
npm pkg set
it enables parsing set values with JSON.parse() before saving them to yourpackage.json
.
Not supported by all npm commands.
workspace
- Default:
- Type: String (can be set multiple times)
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.
Valid values for the workspace
config are either:
- Workspace names
- Path to a workspace directory
- Path to a parent workspace directory (will result in selecting all workspaces within that folder)
When set for the npm init
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.
This value is not exported to the environment for child processes.
See Also
- package spec
- npm config
- npmrc
- npm folders
- npm ls
- npm install
- npm link
- npm prune
- npm outdated
- npm update