2015-04-03 47 views
6

我正在瀏覽教程,它看起來像Scala.js只能在sbt下運行。Scala.js可以自行編譯嗎?

有沒有Scala.js(或Scala環境一般)不是Scala寫的?或者因爲其他原因,所有必需的位都不能通過Scala.js?我錯過了什麼?

回答

7

大多數情況下,這是因爲Scala編譯器使用的JDK中尚未移植到Scala.js(尚)的太多部分。其中一些部分,尤其是與閱讀文件(在類路徑和源文件中)有關的部分,這些部分無法在JavaScript中實現(儘管可以在一個特定的平臺上實現,例如Node.js)。

還有一個依賴於ASM,一個用Java編寫的Java字節碼操作庫。即使Scala.js編譯爲JavaScript,Java字節碼仍然用於單獨編譯(在以前編譯的部分(如庫)中進行符號查找)。因此,儘管Scala.js特定部分是以獨立於平臺的方式編寫的(例如,我們測試Scala.js優化器可以自行優化),但scalac中有很多部分不起作用在Scala.js中開箱即用。

+0

我一點也不擔心文件操作 - 我只是希望能夠在瀏覽器中輸入內容並將其編譯並單獨運行。有一個字節碼到js庫在那裏。我想知道你是否在ASM上使用它... – Malvolio 2015-04-04 18:50:32

相關問題