1NPM-EXPLAIN(1) NPM-EXPLAIN(1)
2
3
4
6 npm-explain - Explain installed packages
7
8 Synopsis
9 npm explain <package-spec>
10
11 alias: why
12
13 Description
14 This command will print the chain of dependencies causing a given pack‐
15 age to be installed in the current project.
16
17 If one or more package specs are provided, then only packages matching
18 one of the specifiers will have their relationships explained.
19
20 The package spec can also refer to a folder within ./node_modules
21
22 For example, running npm explain glob within npm's source tree will
23 show:
24
25 glob@7.1.6
26 node_modules/glob
27 glob@"^7.1.4" from the root project
28
29 glob@7.1.1 dev
30 node_modules/tacks/node_modules/glob
31 glob@"^7.0.5" from rimraf@2.6.2
32 node_modules/tacks/node_modules/rimraf
33 rimraf@"^2.6.2" from tacks@1.3.0
34 node_modules/tacks
35 dev tacks@"^1.3.0" from the root project
36
37 To explain just the package residing at a specific folder, pass that as
38 the argument to the command. This can be useful when trying to figure
39 out exactly why a given dependency is being duplicated to satisfy con‐
40 flicting version requirements within the project.
41
42 $ npm explain node_modules/nyc/node_modules/find-up
43 find-up@3.0.0 dev
44 node_modules/nyc/node_modules/find-up
45 find-up@"^3.0.0" from nyc@14.1.1
46 node_modules/nyc
47 nyc@"^14.1.1" from tap@14.10.8
48 node_modules/tap
49 dev tap@"^14.10.8" from the root project
50
51 Configuration
52 json
53 • Default: false
54
55 • Type: Boolean
56
57
58 Whether or not to output JSON data, rather than the normal output.
59
60 • In npm pkg set it enables parsing set values with JSON.parse() be‐
61 fore saving them to your package.json.
62
63
64 Not supported by all npm commands.
65
66 workspace
67 • Default:
68
69 • Type: String (can be set multiple times)
70
71
72 Enable running a command in the context of the configured workspaces of
73 the current project while filtering by running only the workspaces de‐
74 fined by this configuration option.
75
76 Valid values for the workspace config are either:
77
78 • Workspace names
79
80 • Path to a workspace directory
81
82 • Path to a parent workspace directory (will result in selecting all
83 workspaces within that folder)
84
85
86 When set for the npm init command, this may be set to the folder of a
87 workspace which does not yet exist, to create the folder and set it up
88 as a brand new workspace within the project.
89
90 This value is not exported to the environment for child processes.
91
92 See Also
93 • npm help "package spec"
94
95 • npm help config
96
97 • npm help npmrc
98
99 • npm help folders
100
101 • npm help ls
102
103 • npm help install
104
105 • npm help link
106
107 • npm help prune
108
109 • npm help outdated
110
111 • npm help update
112
113
114
115 November 2023 NPM-EXPLAIN(1)