收缩 node_modules 目录?

Shrink node_modules directory?

我以前用过proguard to shrink android app packages。它从应用程序依赖项中删除未使用的 类 和文件,甚至是第三方依赖项,从而大大减小了包的大小。 node/npm 中是否有等价物?

npm prune --production 删除开发依赖,node-prune 部分删除未使用的文件。但都没有从第三方包中完全删除不必要的代码。

您无法完全删除它,node_modules 需要 运行 您的脚本。 您可能认为有未使用的文件,但在某些情况下仍然需要它们。

所以在做这些事情的时候还是要仔细检查一下。 如果总文件大小是你的事。我推荐使用这个工具: https://github.com/tj/node-prune

它为您提供了一些选项来控制要删除或不删除的内容。

您已经在您的问题中提到了 --production 标志和 node-prune,所以我将省略它们。 (你也可以看看dmn,它类似于node-prune。)

如果您使用 rollupwebpack 之类的捆绑器,他们可以 tree shaking 删除您不使用的代码。 (我不确定需要多少配置才能让它安全地与 node_modules 中的第三方模块一起工作,或者即使这是可能的。)在这种情况下,tree shaking 不会从 node_modules 不过。相反,这些工具将所有内容捆绑到一个可执行文件中,并从中删除未使用的代码。