问题描述
我之前用过 proguard 到 shrink android app packages。它从应用程序依赖项中删除未使用的类和文件,甚至是 3rd 方的,从而大大降低了包的大小。 node/npm 中是否有等价物?
npm prune --production
删除开发依赖项,而 node-prune 部分删除未使用的文件。但两者都没有从 3rd 方包中完全删除不必要的代码。
解决方法
您已经在问题中提到了 --production
标志和 node-prune
,所以我将忽略它们。 (您也可以查看类似于 node-prune
的 dmn
。)
如果您使用的是 rollup
或 webpack
之类的捆绑程序,他们可以执行 tree shaking 来删除您不使用的代码。 (我不确定需要多少配置才能让它安全地与 node_modules
中的第三方模块一起工作,或者即使可能。)在这种情况下,摇树不会从 { 中删除代码{1}} 不过。相反,这些工具将所有内容捆绑到一个可执行文件中,并从中删除未使用的代码。
您无法完全删除它,需要 node_modules
才能运行您的脚本。
您可能认为有些文件没有使用,但在某些情况下仍然需要它们。
所以我们在做这种事情的时候要仔细检查一下。 如果总文件大小是你的事。我推荐使用这个工具: https://github.com/tj/node-prune
它为您提供了一些控制删除或不删除的选项。