为什么`npm prune`不能从node_modules中删除文件夹?

我有我所有的devDependencies package.json。

我的理解是,如果我删除依赖项,并运行npm prune ,节点将从node_modules删除模块文件夹。 这似乎是维护我的node_modules文件夹的最简单的方法。

从文档 :

npm修剪

删除多余的包

这个命令删除“无关”的包。

无关程序包是父程序包的依赖项列表中未列出的程序包。

但是,有时甚至在运行npm prune之后,我的node_modules中仍然有模块文件夹。

为什么会发生? 什么是删除未使用的模块的正确方法?

根据文件

如果指定了–production标志,则该命令将删除devDependencies中指定的包。

所以,如果你想摆脱在devDependencies中指定的node_modules模块文件夹,你应该执行

npm prune –production

运行后:

 npm ls 

我懂了:

 npm ERR! extraneous: package@0.9.6 /path/to/package 

那么当我做了:

 npm prune 

该软件包已被卸载。