npm-prune.html 9.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283
  1. <html><head>
  2. <title>npm-prune</title>
  3. <style>
  4. body {
  5. background-color: #ffffff;
  6. color: #24292e;
  7. margin: 0;
  8. line-height: 1.5;
  9. font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji";
  10. }
  11. #rainbar {
  12. height: 10px;
  13. background-image: linear-gradient(139deg, #fb8817, #ff4b01, #c12127, #e02aff);
  14. }
  15. a {
  16. text-decoration: none;
  17. color: #0366d6;
  18. }
  19. a:hover {
  20. text-decoration: underline;
  21. }
  22. pre {
  23. margin: 1em 0px;
  24. padding: 1em;
  25. border: solid 1px #e1e4e8;
  26. border-radius: 6px;
  27. display: block;
  28. overflow: auto;
  29. white-space: pre;
  30. background-color: #f6f8fa;
  31. color: #393a34;
  32. }
  33. code {
  34. font-family: SFMono-Regular, Consolas, "Liberation Mono", Menlo, Courier, monospace;
  35. font-size: 85%;
  36. padding: 0.2em 0.4em;
  37. background-color: #f6f8fa;
  38. color: #393a34;
  39. }
  40. pre > code {
  41. padding: 0;
  42. background-color: inherit;
  43. color: inherit;
  44. }
  45. h1, h2, h3 {
  46. font-weight: 600;
  47. }
  48. #logobar {
  49. background-color: #333333;
  50. margin: 0 auto;
  51. padding: 1em 4em;
  52. }
  53. #logobar .logo {
  54. float: left;
  55. }
  56. #logobar .title {
  57. font-weight: 600;
  58. color: #dddddd;
  59. float: left;
  60. margin: 5px 0 0 1em;
  61. }
  62. #logobar:after {
  63. content: "";
  64. display: block;
  65. clear: both;
  66. }
  67. #content {
  68. margin: 0 auto;
  69. padding: 0 4em;
  70. }
  71. #table_of_contents > h2 {
  72. font-size: 1.17em;
  73. }
  74. #table_of_contents ul:first-child {
  75. border: solid 1px #e1e4e8;
  76. border-radius: 6px;
  77. padding: 1em;
  78. background-color: #f6f8fa;
  79. color: #393a34;
  80. }
  81. #table_of_contents ul {
  82. list-style-type: none;
  83. padding-left: 1.5em;
  84. }
  85. #table_of_contents li {
  86. font-size: 0.9em;
  87. }
  88. #table_of_contents li a {
  89. color: #000000;
  90. }
  91. header.title {
  92. border-bottom: solid 1px #e1e4e8;
  93. }
  94. header.title > h1 {
  95. margin-bottom: 0.25em;
  96. }
  97. header.title > .description {
  98. display: block;
  99. margin-bottom: 0.5em;
  100. line-height: 1;
  101. }
  102. footer#edit {
  103. border-top: solid 1px #e1e4e8;
  104. margin: 3em 0 4em 0;
  105. padding-top: 2em;
  106. }
  107. </style>
  108. </head>
  109. <body>
  110. <div id="banner">
  111. <div id="rainbar"></div>
  112. <div id="logobar">
  113. <svg class="logo" role="img" height="32" width="32" viewBox="0 0 700 700">
  114. <polygon fill="#cb0000" points="0,700 700,700 700,0 0,0"></polygon>
  115. <polygon fill="#ffffff" points="150,550 350,550 350,250 450,250 450,550 550,550 550,150 150,150"></polygon>
  116. </svg>
  117. <div class="title">
  118. npm command-line interface
  119. </div>
  120. </div>
  121. </div>
  122. <section id="content">
  123. <header class="title">
  124. <h1 id="npm-prune">npm-prune</h1>
  125. <span class="description">Remove extraneous packages</span>
  126. </header>
  127. <section id="table_of_contents">
  128. <h2 id="table-of-contents">Table of contents</h2>
  129. <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="#omit"><code>omit</code></a></li><li><a href="#dry-run"><code>dry-run</code></a></li><li><a href="#json"><code>json</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></ul><li><a href="#see-also">See Also</a></li></ul></div>
  130. </section>
  131. <div id="_content"><h3 id="synopsis">Synopsis</h3>
  132. <pre lang="bash"><code>npm prune [[&lt;@scope&gt;/]&lt;pkg&gt;...] [--production] [--dry-run] [--json]
  133. </code></pre>
  134. <h3 id="description">Description</h3>
  135. <p>This command removes “extraneous” packages. If a package name is provided,
  136. then only packages matching one of the supplied names are removed.</p>
  137. <p>Extraneous packages are those present in the <code>node_modules</code> folder that are
  138. not listed as any package’s dependency list.</p>
  139. <p>If the <code>--production</code> flag is specified or the <code>NODE_ENV</code> environment
  140. variable is set to <code>production</code>, this command will remove the packages
  141. specified in your <code>devDependencies</code>. Setting <code>--no-production</code> will negate
  142. <code>NODE_ENV</code> being set to <code>production</code>.</p>
  143. <p>If the <code>--dry-run</code> flag is used then no changes will actually be made.</p>
  144. <p>If the <code>--json</code> flag is used, then the changes <code>npm prune</code> made (or would
  145. have made with <code>--dry-run</code>) are printed as a JSON object.</p>
  146. <p>In normal operation, extraneous modules are pruned automatically, so you’ll
  147. only need this command with the <code>--production</code> flag. However, in the real
  148. world, operation is not always “normal”. When crashes or mistakes happen,
  149. this command can help clean up any resulting garbage.</p>
  150. <h3 id="configuration">Configuration</h3>
  151. <!-- raw HTML omitted -->
  152. <!-- raw HTML omitted -->
  153. <!-- raw HTML omitted -->
  154. <h4 id="omit"><code>omit</code></h4>
  155. <ul>
  156. <li>Default: ‘dev’ if the <code>NODE_ENV</code> environment variable is set to
  157. ‘production’, otherwise empty.</li>
  158. <li>Type: “dev”, “optional”, or “peer” (can be set multiple times)</li>
  159. </ul>
  160. <p>Dependency types to omit from the installation tree on disk.</p>
  161. <p>Note that these dependencies <em>are</em> still resolved and added to the
  162. <code>package-lock.json</code> or <code>npm-shrinkwrap.json</code> file. They are just not
  163. physically installed on disk.</p>
  164. <p>If a package type appears in both the <code>--include</code> and <code>--omit</code> lists, then
  165. it will be included.</p>
  166. <p>If the resulting omit list includes <code>'dev'</code>, then the <code>NODE_ENV</code> environment
  167. variable will be set to <code>'production'</code> for all lifecycle scripts.</p>
  168. <!-- raw HTML omitted -->
  169. <!-- raw HTML omitted -->
  170. <h4 id="dry-run"><code>dry-run</code></h4>
  171. <ul>
  172. <li>Default: false</li>
  173. <li>Type: Boolean</li>
  174. </ul>
  175. <p>Indicates that you don’t want npm to make any changes and that it should
  176. only report what it would have done. This can be passed into any of the
  177. commands that modify your local installation, eg, <code>install</code>, <code>update</code>,
  178. <code>dedupe</code>, <code>uninstall</code>, as well as <code>pack</code> and <code>publish</code>.</p>
  179. <p>Note: This is NOT honored by other network related commands, eg <code>dist-tags</code>,
  180. <code>owner</code>, etc.</p>
  181. <!-- raw HTML omitted -->
  182. <!-- raw HTML omitted -->
  183. <h4 id="json"><code>json</code></h4>
  184. <ul>
  185. <li>Default: false</li>
  186. <li>Type: Boolean</li>
  187. </ul>
  188. <p>Whether or not to output JSON data, rather than the normal output.</p>
  189. <ul>
  190. <li>In <code>npm pkg set</code> it enables parsing set values with JSON.parse() before
  191. saving them to your <code>package.json</code>.</li>
  192. </ul>
  193. <p>Not supported by all npm commands.</p>
  194. <!-- raw HTML omitted -->
  195. <!-- raw HTML omitted -->
  196. <h4 id="workspace"><code>workspace</code></h4>
  197. <ul>
  198. <li>Default:</li>
  199. <li>Type: String (can be set multiple times)</li>
  200. </ul>
  201. <p>Enable running a command in the context of the configured workspaces of the
  202. current project while filtering by running only the workspaces defined by
  203. this configuration option.</p>
  204. <p>Valid values for the <code>workspace</code> config are either:</p>
  205. <ul>
  206. <li>Workspace names</li>
  207. <li>Path to a workspace directory</li>
  208. <li>Path to a parent workspace directory (will result in selecting all
  209. workspaces within that folder)</li>
  210. </ul>
  211. <p>When set for the <code>npm init</code> command, this may be set to the folder of a
  212. workspace which does not yet exist, to create the folder and set it up as a
  213. brand new workspace within the project.</p>
  214. <p>This value is not exported to the environment for child processes.</p>
  215. <!-- raw HTML omitted -->
  216. <!-- raw HTML omitted -->
  217. <h4 id="workspaces"><code>workspaces</code></h4>
  218. <ul>
  219. <li>Default: null</li>
  220. <li>Type: null or Boolean</li>
  221. </ul>
  222. <p>Set to true to run the command in the context of <strong>all</strong> configured
  223. workspaces.</p>
  224. <p>Explicitly setting this to false will cause commands like <code>install</code> to
  225. ignore workspaces altogether. When not set explicitly:</p>
  226. <ul>
  227. <li>Commands that operate on the <code>node_modules</code> tree (install, update, etc.)
  228. will link workspaces into the <code>node_modules</code> folder. - Commands that do
  229. other things (test, exec, publish, etc.) will operate on the root project,
  230. <em>unless</em> one or more workspaces are specified in the <code>workspace</code> config.</li>
  231. </ul>
  232. <p>This value is not exported to the environment for child processes.</p>
  233. <!-- raw HTML omitted -->
  234. <!-- raw HTML omitted -->
  235. <h4 id="include-workspace-root"><code>include-workspace-root</code></h4>
  236. <ul>
  237. <li>Default: false</li>
  238. <li>Type: Boolean</li>
  239. </ul>
  240. <p>Include the workspace root when workspaces are enabled for a command.</p>
  241. <p>When false, specifying individual workspaces via the <code>workspace</code> config, or
  242. all workspaces via the <code>workspaces</code> flag, will cause npm to operate only on
  243. the specified workspaces, and not on the root project.</p>
  244. <!-- raw HTML omitted -->
  245. <!-- raw HTML omitted -->
  246. <!-- raw HTML omitted -->
  247. <h3 id="see-also">See Also</h3>
  248. <ul>
  249. <li><a href="../commands/npm-uninstall.html">npm uninstall</a></li>
  250. <li><a href="../configuring-npm/folders.html">npm folders</a></li>
  251. <li><a href="../commands/npm-ls.html">npm ls</a></li>
  252. </ul>
  253. </div>
  254. <footer id="edit">
  255. <a href="https://github.com/npm/cli/edit/latest/docs/content/commands/npm-prune.md">
  256. <svg role="img" viewBox="0 0 16 16" width="16" height="16" fill="currentcolor" style="vertical-align: text-bottom; margin-right: 0.3em;">
  257. <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>
  258. </svg>
  259. Edit this page on GitHub
  260. </a>
  261. </footer>
  262. </section>
  263. </body></html>