存在一些webpack bundle分析脚本,它们显示包含的模块列表及其大小。但是,Scala.js为所有Scala代码发出了一个大模块,因此这些工具无法查看它。
作为库作者和其他Scala.js库的最终用户,我想知道各种Scala包/类对我的包大小有多大贡献。
我知道Scala.js优化使得不可能说给定的库正好加权X Kb,所以我对一个查看特定包的解决方案感兴趣。
目前我能做的最好的事情是在生成的JS文件中搜索"com.package.name
,并在滚动条上判断结果指标的密度,但这显然非常不理想。
所以我的问题是,是否有任何工具甚至是半烘焙的脚本可以改善我正在做的事情?
这可能不像你想要的那样精确,
但是为了帮助测量每个js文件的近似大小,您可以在scalac编译器生成的target / scala-2.1.2 / classes中检查二进制文件(在运行fastOptJS之类的任务后使用.sjsir扩展)并将它们编译为JavaScript的。
要将二进制文件编译为javascript,您可以使用此answer中提供的代码。
终于找到了一个很好的解决方案 - 使用正确的sbt配置source-map-explorer npm包确实完成了我需要的基于源图(当然!)。它显示了各个Scala类对包大小的直接影响。
资料来源:Scala.js issue #3556