【发布时间】:2015-04-04 21:21:23
【问题描述】:
我正在阅读教程,看起来 Scala.js 只能在 sbt 下运行。
是否有一些 Scala.js(或一般的 Scala 环境)不是用 Scala 编写的?或者由于其他原因,所有必要的部分都不能通过 Scala.js?我错过了什么?
【问题讨论】:
标签: scala.js
我正在阅读教程,看起来 Scala.js 只能在 sbt 下运行。
是否有一些 Scala.js(或一般的 Scala 环境)不是用 Scala 编写的?或者由于其他原因,所有必要的部分都不能通过 Scala.js?我错过了什么?
【问题讨论】:
标签: scala.js
这主要是因为 Scala 编译器使用了太多尚未移植到 Scala.js 的 JDK 部分(目前)。其中一些部分,尤其是与读取文件(在类路径和源文件中)相关的部分,无法在 JavaScript 中实现(尽管可以在一个特定平台上实现,例如 Node.js)。
还有对 ASM 的依赖,这是一个用 Java 编写的 Java 字节码操作库。即使 Scala.js 编译为 JavaScript,Java 字节码仍用于单独编译(在以前编译的部分中查找符号,例如库)。
因此,即使 Scala.js 的特定部分是以独立于平台的方式编写的(例如,我们测试了 Scala.js 优化器是否可以优化自身),但 scalac 中有很多部分无法解决Scala.js 中的开箱即用。
【讨论】: