如何分析Closure Compiler软件包的大小

时间:2018-10-01 10:30:05

标签: javascript compilation clojurescript google-closure-compiler

我在ClojureScript中有一个应用程序,它使用Google的Closure Compiler作为编译器后端。使用高级优化程序生成的捆绑包似乎太大了。我归咎于依赖关系,但是我如何找出输出捆绑包中占用最大字节的模块呢?我浏览了所有的Closure Compiler选项,没有发现任何有用的信息。然后,我尝试了解源映射,并使用它来计算单个模块的大小,但没有成功。

我想要一个类似树的输出,例如,在其中我可以挖掘并找到最大的模块。

  • [+] goog 100kb
    • [+] goog.net 30kb
  • [+] react 90kb
  • [+] my 50kb
    • [+] my.namespace 30kb

2 个答案:

答案 0 :(得分:3)

据我所知,这种工具不存在。虽然这将是一个极好的选择。

该工具不必特定于Closure Compiler。相反,分析输出源映射可以将代码中的特定符号归因于特定的输入文件。

答案 1 :(得分:2)

shadow-cljs可以生成Build Reports,该文件将获取高级的编译输出并分析源映射,然后将其与一些编译器信息组合起来,以按工件对源进行分组,依此类推。该报告将作为独立的.html文件生成。

可以找到here的示例构建报告。该构建包括来自"antd"的{​​{1}}软件包。可以找到here。仅包含npm的比较报告。

请注意,这仅限于shadow-cljs,因为它依赖于所有源地图数据均可用。分析其他工具生成的CLJS构建的源映射会错过所有CLJSJS内容的源映射,因此会包含很多“空白”。