我正在尝试使用Scala.js
创建SPA,因此我按照此处的教程进行操作:http://www.scala-js.org/tutorial/basic/
我已将addSbtPlugin("org.scala-js" % "sbt-scalajs" % "0.6.7")
添加到plugins.sbt
,将enablePlugins(ScalaJSPlugin)
添加到build.sbt
。
但是,我收到此错误:
Error:Error while importing SBT project:<br/>...<br/><pre>[info] [SUCCESSFUL ] args4j#args4j;2.0.16!args4j.jar (92ms)
[info] downloading https://repo1.maven.org/maven2/org/webjars/envjs/1.2/envjs-1.2.jar ...
[info] [SUCCESSFUL ] org.webjars#envjs;1.2!envjs.jar (179ms)
[info] Done updating.
java.lang.RuntimeException: Scala.js cannot be run in a forked JVM
at scala.sys.package$.error(package.scala:27)
at org.scalajs.sbtplugin.ScalaJSPluginInternal$$anonfun$43.apply(ScalaJSPluginInternal.scala:551)
at org.scalajs.sbtplugin.ScalaJSPluginInternal$$anonfun$43.apply(ScalaJSPluginInternal.scala:549)
at scala.Function1$$anonfun$compose$1.apply(Function1.scala:47)
at sbt.EvaluateSettings$MixedNode.evaluate0(INode.scala:175)
at sbt.EvaluateSettings$INode.evaluate(INode.scala:135)
at sbt.EvaluateSettings$$anonfun$sbt$EvaluateSettings$$submitEvaluate$1.apply$mcV$sp(INode.scala:69)
at sbt.EvaluateSettings.sbt$EvaluateSettings$$run0(INode.scala:78)
at sbt.EvaluateSettings$$anon$3.run(INode.scala:74)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at java.lang.Thread.run(Thread.java:745)
[error] Scala.js cannot be run in a forked JVM
[error] Use 'last' for the full log.
为什么Scala.js
不能与JVM一起使用?
答案 0 :(得分:4)
这似乎是一个已知的issue
你应该:那是因为你混合了JVM的东西(Play)和JS的东西 sbt项目。你不能这样做。你需要单独的sbt项目(in 相同的构建)。看到 https://github.com/vmunier/play-with-scalajs-example了解如何使用 Scala.js与Play!。
这是example
答案 1 :(得分:0)
这通常是由于与scalajs在同一项目中包含jvm库的其他sbt插件冲突而发生的。如果没有看到build.sbt和plugins.sbt的其余内容,就无法确切地说出造成冲突的原因。
假设您正在尝试将其与play集成,这是一个示例项目,可以帮助您入门: