3

这个问题与ScalaJS 中的Linker error: "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。

4

1 回答 1

4

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/

于 2016-10-21T02:07:28.487 回答