我在ClojureScript中有一个应用程序,它使用Google的Closure Compiler作为编译器后端。使用高级优化程序生成的捆绑包似乎太大了。我归咎于依赖关系,但是我如何找出输出捆绑包中占用最大字节的模块呢?我浏览了所有的Closure Compiler选项,没有发现任何有用的信息。然后,我尝试了解源映射,并使用它来计算单个模块的大小,但没有成功。
我想要一个类似树的输出,例如,在其中我可以挖掘并找到最大的模块。
goog
100kb
goog.net
30kb react
90kb my
50kb
my.namespace
30kb 答案 0 :(得分:3)
据我所知,这种工具不存在。虽然这将是一个极好的选择。
该工具不必特定于Closure Compiler。相反,分析输出源映射可以将代码中的特定符号归因于特定的输入文件。
答案 1 :(得分:2)
shadow-cljs可以生成Build Reports,该文件将获取高级的编译输出并分析源映射,然后将其与一些编译器信息组合起来,以按工件对源进行分组,依此类推。该报告将作为独立的.html文件生成。
可以找到here的示例构建报告。该构建包括来自"antd"
的{{1}}软件包。可以找到here。仅包含npm
的比较报告。
请注意,这仅限于shadow-cljs,因为它依赖于所有源地图数据均可用。分析其他工具生成的CLJS构建的源映射会错过所有CLJSJS内容的源映射,因此会包含很多“空白”。