【发布时间】:2021-06-24 06:03:35
【问题描述】:
我以前用过proguard 到shrink android app packages。它从应用程序依赖项中删除未使用的类和文件,甚至是第 3 方依赖项,从而显着减小包大小。 node/npm 中是否有等价物?
npm prune --production 删除开发依赖项,node-prune 部分删除未使用的文件。但两者都没有从第三方包中完全删除不必要的代码。
【问题讨论】:
-
你为什么要这样做?由于函数、文件或模块可以根据使用情况或运行的平台动态引用,因此对第 3 方模块中究竟需要什么进行完全准确的静态分析是不可能的。
-
下载速度?这段代码在哪里运行?
-
@jfriend00 我知道可能存在动态引用,这就是为什么 proguard 允许将其配置为不删除某些类,即使它们看起来未使用。
-
@jfriend00 我收回关于下载速度的看法,我在考虑 android 包,但我还是很好奇 :)
-
那么,这只是在服务器上运行?我不确定尝试修剪东西是否有任何优势,只有风险。因为 JS 不是类型化和预编译的,你可能会不小心删除某些情况下需要的东西。那么,您想冒这个风险只是为了减少服务器上的磁盘空间使用量?我认为您的时间会花在能够真正改善您的应用的项目上,效果会更好。
标签: node.js npm node-modules proguard shrink