1<!DOCTYPE html><html><head> 2<meta charset="utf-8"> 3<title>npm-find-dupes</title> 4<style> 5body { 6 background-color: #ffffff; 7 color: #24292e; 8 9 margin: 0; 10 11 line-height: 1.5; 12 13 font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji"; 14} 15#rainbar { 16 height: 10px; 17 background-image: linear-gradient(139deg, #fb8817, #ff4b01, #c12127, #e02aff); 18} 19 20a { 21 text-decoration: none; 22 color: #0366d6; 23} 24a:hover { 25 text-decoration: underline; 26} 27 28pre { 29 margin: 1em 0px; 30 padding: 1em; 31 border: solid 1px #e1e4e8; 32 border-radius: 6px; 33 34 display: block; 35 overflow: auto; 36 37 white-space: pre; 38 39 background-color: #f6f8fa; 40 color: #393a34; 41} 42code { 43 font-family: SFMono-Regular, Consolas, "Liberation Mono", Menlo, Courier, monospace; 44 font-size: 85%; 45 padding: 0.2em 0.4em; 46 background-color: #f6f8fa; 47 color: #393a34; 48} 49pre > code { 50 padding: 0; 51 background-color: inherit; 52 color: inherit; 53} 54h1, h2, h3 { 55 font-weight: 600; 56} 57 58#logobar { 59 background-color: #333333; 60 margin: 0 auto; 61 padding: 1em 4em; 62} 63#logobar .logo { 64 float: left; 65} 66#logobar .title { 67 font-weight: 600; 68 color: #dddddd; 69 float: left; 70 margin: 5px 0 0 1em; 71} 72#logobar:after { 73 content: ""; 74 display: block; 75 clear: both; 76} 77 78#content { 79 margin: 0 auto; 80 padding: 0 4em; 81} 82 83#table_of_contents > h2 { 84 font-size: 1.17em; 85} 86#table_of_contents ul:first-child { 87 border: solid 1px #e1e4e8; 88 border-radius: 6px; 89 padding: 1em; 90 background-color: #f6f8fa; 91 color: #393a34; 92} 93#table_of_contents ul { 94 list-style-type: none; 95 padding-left: 1.5em; 96} 97#table_of_contents li { 98 font-size: 0.9em; 99} 100#table_of_contents li a { 101 color: #000000; 102} 103 104header.title { 105 border-bottom: solid 1px #e1e4e8; 106} 107header.title > h1 { 108 margin-bottom: 0.25em; 109} 110header.title > .description { 111 display: block; 112 margin-bottom: 0.5em; 113 line-height: 1; 114} 115 116footer#edit { 117 border-top: solid 1px #e1e4e8; 118 margin: 3em 0 4em 0; 119 padding-top: 2em; 120} 121</style> 122</head> 123<body> 124<div id="banner"> 125<div id="rainbar"></div> 126<div id="logobar"> 127<svg class="logo" role="img" height="32" width="32" viewBox="0 0 700 700"> 128<polygon fill="#cb0000" points="0,700 700,700 700,0 0,0"></polygon> 129<polygon fill="#ffffff" points="150,550 350,550 350,250 450,250 450,550 550,550 550,150 150,150"></polygon> 130</svg> 131<div class="title"> 132npm command-line interface 133</div> 134</div> 135</div> 136 137<section id="content"> 138<header class="title"> 139<h1 id="npm-find-dupes">npm-find-dupes</h1> 140<span class="description">Find duplication in the package tree</span> 141</header> 142 143<section id="table_of_contents"> 144<h2 id="table-of-contents">Table of contents</h2> 145<div id="_table_of_contents"><ul><li><a href="#synopsis">Synopsis</a></li><li><a href="#description">Description</a></li><li><a href="#configuration">Configuration</a></li><ul><li><a href="#install-strategy"><code>install-strategy</code></a></li><li><a href="#legacy-bundling"><code>legacy-bundling</code></a></li><li><a href="#global-style"><code>global-style</code></a></li><li><a href="#strict-peer-deps"><code>strict-peer-deps</code></a></li><li><a href="#package-lock"><code>package-lock</code></a></li><li><a href="#omit"><code>omit</code></a></li><li><a href="#include"><code>include</code></a></li><li><a href="#ignore-scripts"><code>ignore-scripts</code></a></li><li><a href="#audit"><code>audit</code></a></li><li><a href="#bin-links"><code>bin-links</code></a></li><li><a href="#fund"><code>fund</code></a></li><li><a href="#workspace"><code>workspace</code></a></li><li><a href="#workspaces"><code>workspaces</code></a></li><li><a href="#include-workspace-root"><code>include-workspace-root</code></a></li><li><a href="#install-links"><code>install-links</code></a></li></ul><li><a href="#see-also">See Also</a></li></ul></div> 146</section> 147 148<div id="_content"><h3 id="synopsis">Synopsis</h3> 149<pre><code class="language-bash">npm find-dupes 150</code></pre> 151<h3 id="description">Description</h3> 152<p>Runs <code>npm dedupe</code> in <code>--dry-run</code> mode, making npm only output the 153duplications, without actually changing the package tree.</p> 154<h3 id="configuration">Configuration</h3> 155<h4 id="install-strategy"><code>install-strategy</code></h4> 156<ul> 157<li>Default: "hoisted"</li> 158<li>Type: "hoisted", "nested", "shallow", or "linked"</li> 159</ul> 160<p>Sets the strategy for installing packages in node_modules. hoisted 161(default): Install non-duplicated in top-level, and duplicated as necessary 162within directory structure. nested: (formerly --legacy-bundling) install in 163place, no hoisting. shallow (formerly --global-style) only install direct 164deps at top-level. linked: (experimental) install in node_modules/.store, 165link in place, unhoisted.</p> 166<h4 id="legacy-bundling"><code>legacy-bundling</code></h4> 167<ul> 168<li>Default: false</li> 169<li>Type: Boolean</li> 170<li>DEPRECATED: This option has been deprecated in favor of 171<code>--install-strategy=nested</code></li> 172</ul> 173<p>Instead of hoisting package installs in <code>node_modules</code>, install packages in 174the same manner that they are depended on. This may cause very deep 175directory structures and duplicate package installs as there is no 176de-duplicating. Sets <code>--install-strategy=nested</code>.</p> 177<h4 id="global-style"><code>global-style</code></h4> 178<ul> 179<li>Default: false</li> 180<li>Type: Boolean</li> 181<li>DEPRECATED: This option has been deprecated in favor of 182<code>--install-strategy=shallow</code></li> 183</ul> 184<p>Only install direct dependencies in the top level <code>node_modules</code>, but hoist 185on deeper dependencies. Sets <code>--install-strategy=shallow</code>.</p> 186<h4 id="strict-peer-deps"><code>strict-peer-deps</code></h4> 187<ul> 188<li>Default: false</li> 189<li>Type: Boolean</li> 190</ul> 191<p>If set to <code>true</code>, and <code>--legacy-peer-deps</code> is not set, then <em>any</em> 192conflicting <code>peerDependencies</code> will be treated as an install failure, even 193if npm could reasonably guess the appropriate resolution based on non-peer 194dependency relationships.</p> 195<p>By default, conflicting <code>peerDependencies</code> deep in the dependency graph will 196be resolved using the nearest non-peer dependency specification, even if 197doing so will result in some packages receiving a peer dependency outside 198the range set in their package's <code>peerDependencies</code> object.</p> 199<p>When such an override is performed, a warning is printed, explaining the 200conflict and the packages involved. If <code>--strict-peer-deps</code> is set, then 201this warning is treated as a failure.</p> 202<h4 id="package-lock"><code>package-lock</code></h4> 203<ul> 204<li>Default: true</li> 205<li>Type: Boolean</li> 206</ul> 207<p>If set to false, then ignore <code>package-lock.json</code> files when installing. This 208will also prevent <em>writing</em> <code>package-lock.json</code> if <code>save</code> is true.</p> 209<h4 id="omit"><code>omit</code></h4> 210<ul> 211<li>Default: 'dev' if the <code>NODE_ENV</code> environment variable is set to 212'production', otherwise empty.</li> 213<li>Type: "dev", "optional", or "peer" (can be set multiple times)</li> 214</ul> 215<p>Dependency types to omit from the installation tree on disk.</p> 216<p>Note that these dependencies <em>are</em> still resolved and added to the 217<code>package-lock.json</code> or <code>npm-shrinkwrap.json</code> file. They are just not 218physically installed on disk.</p> 219<p>If a package type appears in both the <code>--include</code> and <code>--omit</code> lists, then 220it will be included.</p> 221<p>If the resulting omit list includes <code>'dev'</code>, then the <code>NODE_ENV</code> environment 222variable will be set to <code>'production'</code> for all lifecycle scripts.</p> 223<h4 id="include"><code>include</code></h4> 224<ul> 225<li>Default:</li> 226<li>Type: "prod", "dev", "optional", or "peer" (can be set multiple times)</li> 227</ul> 228<p>Option that allows for defining which types of dependencies to install.</p> 229<p>This is the inverse of <code>--omit=<type></code>.</p> 230<p>Dependency types specified in <code>--include</code> will not be omitted, regardless of 231the order in which omit/include are specified on the command-line.</p> 232<h4 id="ignore-scripts"><code>ignore-scripts</code></h4> 233<ul> 234<li>Default: false</li> 235<li>Type: Boolean</li> 236</ul> 237<p>If true, npm does not run scripts specified in package.json files.</p> 238<p>Note that commands explicitly intended to run a particular script, such as 239<code>npm start</code>, <code>npm stop</code>, <code>npm restart</code>, <code>npm test</code>, and <code>npm run-script</code> 240will still run their intended script if <code>ignore-scripts</code> is set, but they 241will <em>not</em> run any pre- or post-scripts.</p> 242<h4 id="audit"><code>audit</code></h4> 243<ul> 244<li>Default: true</li> 245<li>Type: Boolean</li> 246</ul> 247<p>When "true" submit audit reports alongside the current npm command to the 248default registry and all registries configured for scopes. See the 249documentation for <a href="../commands/npm-audit.html"><code>npm audit</code></a> for details on what is 250submitted.</p> 251<h4 id="bin-links"><code>bin-links</code></h4> 252<ul> 253<li>Default: true</li> 254<li>Type: Boolean</li> 255</ul> 256<p>Tells npm to create symlinks (or <code>.cmd</code> shims on Windows) for package 257executables.</p> 258<p>Set to false to have it not do this. This can be used to work around the 259fact that some file systems don't support symlinks, even on ostensibly Unix 260systems.</p> 261<h4 id="fund"><code>fund</code></h4> 262<ul> 263<li>Default: true</li> 264<li>Type: Boolean</li> 265</ul> 266<p>When "true" displays the message at the end of each <code>npm install</code> 267acknowledging the number of dependencies looking for funding. See <a href="../commands/npm-fund.html"><code>npm fund</code></a> for details.</p> 268<h4 id="workspace"><code>workspace</code></h4> 269<ul> 270<li>Default:</li> 271<li>Type: String (can be set multiple times)</li> 272</ul> 273<p>Enable running a command in the context of the configured workspaces of the 274current project while filtering by running only the workspaces defined by 275this configuration option.</p> 276<p>Valid values for the <code>workspace</code> config are either:</p> 277<ul> 278<li>Workspace names</li> 279<li>Path to a workspace directory</li> 280<li>Path to a parent workspace directory (will result in selecting all 281workspaces within that folder)</li> 282</ul> 283<p>When set for the <code>npm init</code> command, this may be set to the folder of a 284workspace which does not yet exist, to create the folder and set it up as a 285brand new workspace within the project.</p> 286<p>This value is not exported to the environment for child processes.</p> 287<h4 id="workspaces"><code>workspaces</code></h4> 288<ul> 289<li>Default: null</li> 290<li>Type: null or Boolean</li> 291</ul> 292<p>Set to true to run the command in the context of <strong>all</strong> configured 293workspaces.</p> 294<p>Explicitly setting this to false will cause commands like <code>install</code> to 295ignore workspaces altogether. When not set explicitly:</p> 296<ul> 297<li>Commands that operate on the <code>node_modules</code> tree (install, update, etc.) 298will link workspaces into the <code>node_modules</code> folder. - Commands that do 299other things (test, exec, publish, etc.) will operate on the root project, 300<em>unless</em> one or more workspaces are specified in the <code>workspace</code> config.</li> 301</ul> 302<p>This value is not exported to the environment for child processes.</p> 303<h4 id="include-workspace-root"><code>include-workspace-root</code></h4> 304<ul> 305<li>Default: false</li> 306<li>Type: Boolean</li> 307</ul> 308<p>Include the workspace root when workspaces are enabled for a command.</p> 309<p>When false, specifying individual workspaces via the <code>workspace</code> config, or 310all workspaces via the <code>workspaces</code> flag, will cause npm to operate only on 311the specified workspaces, and not on the root project.</p> 312<p>This value is not exported to the environment for child processes.</p> 313<h4 id="install-links"><code>install-links</code></h4> 314<ul> 315<li>Default: false</li> 316<li>Type: Boolean</li> 317</ul> 318<p>When set file: protocol dependencies will be packed and installed as regular 319dependencies instead of creating a symlink. This option has no effect on 320workspaces.</p> 321<h3 id="see-also">See Also</h3> 322<ul> 323<li><a href="../commands/npm-dedupe.html">npm dedupe</a></li> 324<li><a href="../commands/npm-ls.html">npm ls</a></li> 325<li><a href="../commands/npm-update.html">npm update</a></li> 326<li><a href="../commands/npm-install.html">npm install</a></li> 327</ul></div> 328 329<footer id="edit"> 330<a href="https://github.com/npm/cli/edit/latest/docs/content/commands/npm-find-dupes.md"> 331<svg role="img" viewBox="0 0 16 16" width="16" height="16" fill="currentcolor" style="vertical-align: text-bottom; margin-right: 0.3em;"> 332<path fill-rule="evenodd" d="M11.013 1.427a1.75 1.75 0 012.474 0l1.086 1.086a1.75 1.75 0 010 2.474l-8.61 8.61c-.21.21-.47.364-.756.445l-3.251.93a.75.75 0 01-.927-.928l.929-3.25a1.75 1.75 0 01.445-.758l8.61-8.61zm1.414 1.06a.25.25 0 00-.354 0L10.811 3.75l1.439 1.44 1.263-1.263a.25.25 0 000-.354l-1.086-1.086zM11.189 6.25L9.75 4.81l-6.286 6.287a.25.25 0 00-.064.108l-.558 1.953 1.953-.558a.249.249 0 00.108-.064l6.286-6.286z"></path> 333</svg> 334Edit this page on GitHub 335</a> 336</footer> 337</section> 338 339 340 341</body></html>