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