<h1><a href="../cli/npm-dedupe.html">npm-dedupe</a></h1> <p>Reduce duplication</p>
<h2 id="synopsis">SYNOPSIS</h2>
<pre><code>npm dedupe [package names...]
npm ddp [package names...]
</code></pre><h2 id="description">DESCRIPTION</h2>
<p>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>
<p>For example, consider this dependency graph:</p>
<pre><code>a
+-- b &lt;-- depends on c@1.0.x
|   `-- c@1.0.3
`-- d &lt;-- depends on c@~1.0.9
    `-- c@1.0.10
</code></pre><p>In this case, <code><a href="../cli/npm-dedupe.html">npm-dedupe(1)</a></code> will transform the tree to:</p>
<pre><code>a
+-- b
+-- d
`-- c@1.0.10
</code></pre><p>Because of the hierarchical nature of node&#39;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>
<p>The deduplication algorithm walks the tree, moving each dependency as far
up in the tree as possible, even if duplicates are not found. This will
result in both a flat and deduplicated tree.</p>
<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>
<p>Arguments are ignored. Dedupe always acts on the entire tree.</p>
<p>Modules</p>
<p>Note that this operation transforms the dependency tree, but will never
result in new modules being installed.</p>
<h2 id="see-also">SEE ALSO</h2>
<ul>
<li><a href="../cli/npm-ls.html">npm-ls(1)</a></li>
<li><a href="../cli/npm-update.html">npm-update(1)</a></li>
<li><a href="../cli/npm-install.html">npm-install(1)</a></li>
</ul>