1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
|
.\" Generated with Ronnjs 0.3.8
.\" http://github.com/kapouer/ronnjs/
.
.TH "NPM\-DEDUPE" "1" "June 2013" "" ""
.
.SH "NAME"
\fBnpm-dedupe\fR \-\- Reduce duplication
.
.SH "SYNOPSIS"
.
.nf
npm dedupe [package names\.\.\.]
.
.fi
.
.SH "DESCRIPTION"
Searches the local package tree and attempts to simplify the overall
structure by moving dependencies further up the tree, where they can
be more effectively shared by multiple dependent packages\.
.
.P
For example, consider this dependency graph:
.
.IP "" 4
.
.nf
a
+\-\- b <\-\- depends on c@1\.0\.x
| `\-\- c@1\.0\.3
`\-\- d <\-\- depends on c@~1\.0\.9
`\-\- c@1\.0\.10
.
.fi
.
.IP "" 0
.
.P
In this case, \fBnpm help dedupe\fR will transform the tree to:
.
.IP "" 4
.
.nf
a
+\-\- b
+\-\- d
`\-\- c@1\.0\.10
.
.fi
.
.IP "" 0
.
.P
Because of the hierarchical nature of node\'s module lookup, b and d
will both get their dependency met by the single c package at the root
level of the tree\.
.
.P
If a suitable version exists at the target location in the tree
already, then it will be left untouched, but the other duplicates will
be deleted\.
.
.P
If no suitable version can be found, then a warning is printed, and
nothing is done\.
.
.P
If any arguments are supplied, then they are filters, and only the
named packages will be touched\.
.
.P
Note that this operation transforms the dependency tree, and may
result in packages getting updated versions, perhaps from the npm
registry\.
.
.P
This feature is experimental, and may change in future versions\.
.
.SH "SEE ALSO"
.
.IP "\(bu" 4
npm help ls
.
.IP "\(bu" 4
npm help update
.
.IP "\(bu" 4
npm help install
.
.IP "" 0
|