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

How to break down the size of scala.js JS output

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

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

我知道 Scala.js 优化使得不可能说给定库的权重恰好为 X Kb,因此我对查看特定包的解决方案很感兴趣。

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

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

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

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

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

终于找到了一个很好的解决方案——使用正确的 sbt 配置 source-map-explorer npm 包完全可以根据 sourcemaps 做我需要的(当然!)。它显示了单个 Scala 类 对包大小的直接影响。

来源:Scala.js issue #3556