此问题与Linker error in ScalaJS: "Referring to non-existent class"基本相同,但具体细节似乎不同。我没有在build.sbt中指定JVM版本。
我正在尝试使用scala.io.Source或java.io.File访问我的scalajs应用中的文件。一旦我尝试使用其他任何一个链接失败:
...
[info] Fast optimizing C:\Users\Tim\Documents\GitHub\binpack\target\scala-2.11\binpack-fastopt.js
[error] Referring to non-existent class java.io.File
[error] called from client.jsClient$.onFileChosen(japgolly.scalajs.react.SyntheticEvent)scala.Function0
...
有没有一种方法可以诊断这里发生了什么?我假设问题不是特定于java.io.File,但不知道下一步会是什么。
这是scala 2.11.8,sbt为0.13.7。
答案 0 :(得分:2)
java.io.File
无法移植到Scala.js,因为它特别绑定到JVM。请参阅http://www.lihaoyi.com/hands-on-scala-js/#PortingJavaAPIs(只需滚动到最底部)以获取更多详细信息。
因此,如果您想在Scala.js中执行文件系统IO,您需要使用专门为JavaScript实现的解决方案,例如io.js.这是一个例子:http://bchazalet.github.io/2015/07/20/scalajs-electron-skeleton-part-2/