如何分解scala.js JS输出的大小

时间:2018-06-14 21:05:16

标签: performance scala.js scalajs-bundler

存在一些webpack bundle分析脚本,它们显示包含的模块列表及其大小。但是,Scala.js会为所有Scala代码发出一个大模块,因此这些工具无法查看它。

作为库作者和其他Scala.js库的最终用户,我想知道各种Scala软件包/类对我的软件包大小有多大贡献。

据我所知,Scala.js优化使得无法说某个库的权重正好是X Kb,因此我对一个查看特定包的解决方案感兴趣。

目前,我能做的最好的事情是在生成的JS文件中搜索"com.package.name,并在滚动条上判断结果指标的密度,但这显然非常不理想。

所以我的问题是,是否有任何工具甚至一半的烘焙脚本可以改善我正在做的事情?

2 个答案:

答案 0 :(得分:1)

这可能并非您想要的精确,

但是为了帮助测量每个js文件的近似大小,您可以检查二进制文件( 在由scalac编译器生成的target / scala-2.1.2 / class中运行诸如fastOptJS之类的任务后,使用.sjsir扩展名并将它们中的每一个编译为javascript。

要将二进制文件编译为javascript,可以使用此answer中提供的代码。

答案 1 :(得分:0)

最后找到了一个不错的解决方案–正确的sbt config source-map-explorer npm软件包可以根据源映射完全满足我的需求(当然!)。它显示了各个Scala类对分发包大小的直接影响。

来源:Scala.js issue #3556