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

问题描述 投票:2回答:2

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

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

我知道Scala.js优化使得不可能说给定的库正好加权X Kb,所以我对一个查看特定包的解决方案感兴趣。

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

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

performance scala.js scalajs-bundler
2个回答
1
投票

这可能不像你想要的那样精确,

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

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


1
投票

终于找到了一个很好的解决方案 - 使用正确的sbt配置source-map-explorer npm包确实完成了我需要的基于源图(当然!)。它显示了各个Scala类对包大小的直接影响。

资料来源:Scala.js issue #3556

© www.soinside.com 2019 - 2024. All rights reserved.