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

ela*_*anh 23 node.js npm

我有我的package.json所有devDependencies.

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

来自文档:

修剪

删除无关的包裹

此命令删除"无关"包.

无关的包是父包的依赖项列表中未列出的包.

但是,有时即使在运行后npm prune我仍然有我的模块文件夹node_modules.

为什么会发生这种情况以及删除未使用模块的正确方法是什么?

And*_*nak 10

根据文件

如果--production指定了该标志,则此命令将删除您指定的包devDependencies.

因此,如果要删除node_modules指定的模块文件夹devDependencies,则应执行

npm prune --production

  • 是的,这就是我的想法.我用npm 1.3.14运行Windows.但是我仍然在node_modules中有文件夹,即使它们不在package.json中. (5认同)
  • 我想删除未在devDependencies中指定的文件夹.这与您的建议不同.我希望我的node_modules文件夹只包含我的依赖项中写入的内容,而不是之前使用的额外模块. (4认同)
  • 我的意思是他们根本不在package.json中. (3认同)
  • 我看到了同样的问题 (2认同)

Phi*_*ilT 6

运行后:

npm ls
Run Code Online (Sandbox Code Playgroud)

我知道了:

npm ERR! extraneous: package@0.9.6 /path/to/package
Run Code Online (Sandbox Code Playgroud)

那时我做了:

npm prune
Run Code Online (Sandbox Code Playgroud)

该软件包已卸载.