【问题标题】:scalajs-env-jsdom-nodejs run fails with UnsupportedInputExceptionscalajs-env-jsdom-nodejs 运行失败并出现 UnsupportedInputException
【发布时间】:2021-01-05 13:12:25
【问题描述】:

我正在尝试组合一个非常简单的项目。它可以编译,但是当我尝试 run 它时,它失败了:

[error] org.scalajs.jsenv.UnsupportedInputException: Unsupported input: List(CommonJSModule(/home/esgott/Repos/onlyco/target/scala-2.12/scalajs-bundler/main/onlyco-fastopt.js))
[error]         at org.scalajs.jsenv.jsdomnodejs.JSDOMNodeJSEnv.$anonfun$validateInput$1(JSDOMNodeJSEnv.scala:59)
[error]         at scala.collection.TraversableLike.$anonfun$map$1(TraversableLike.scala:238)
[error]         at scala.collection.immutable.List.foreach(List.scala:392)
[error]         at scala.collection.TraversableLike.map(TraversableLike.scala:238)
[error]         at scala.collection.TraversableLike.map$(TraversableLike.scala:231)
[error]         at scala.collection.immutable.List.map(List.scala:298)
[error]         at org.scalajs.jsenv.jsdomnodejs.JSDOMNodeJSEnv.validateInput(JSDOMNodeJSEnv.scala:54)
[error]         at org.scalajs.jsenv.jsdomnodejs.JSDOMNodeJSEnv.start(JSDOMNodeJSEnv.scala:35)
[error]         at org.scalajs.sbtplugin.Run$.runInterruptible(Run.scala:44)
[error]         at org.scalajs.sbtplugin.ScalaJSPluginInternal$.$anonfun$scalaJSConfigSettings$49(ScalaJSPluginInternal.scala:438)
[error]         at org.scalajs.sbtplugin.ScalaJSPluginInternal$.$anonfun$scalaJSConfigSettings$49$adapted(ScalaJSPluginInternal.scala:422)
[error]         at scala.Function1.$anonfun$compose$1(Function1.scala:49)
[error] stack trace is suppressed; run last Compile / run for the full output
[error] (Compile / run) org.scalajs.jsenv.UnsupportedInputException: Unsupported input: List(CommonJSModule(/home/esgott/Repos/onlyco/target/scala-2.12/scalajs-bundler/main/onlyco-fastopt.js))

项目代码位于https://github.com/esgott/onlyco。我一直在调试这个问题,你有线索吗?

【问题讨论】:

  • 我检查了scalajs-env-jsdom-nodejs 的源代码,它需要Input.Script,但不是Input.CommonJSModule。我想知道有什么区别,以及如何调整这些。

标签: scala sbt scala.js scalajs-react scalajs-bundler


【解决方案1】:

使用 scalajs-bundler 时,正如您似乎正在做的那样,将 jsEnv 指定为 JSDOMNodeJSEnv 是不够的。相反,作为the reference documentation says,您应该使用以下 scalajs-bundler 特定设置:

requireJsDomEnv in Test := true

【讨论】:

  • 我认为这是一个测试的东西,我运行有问题。即使我已经尝试过,但它并没有解决问题,既没有全局设置,也没有在CompileTest配置中设置。
  • 不,确实,scalajs-bundler 不支持带有 jsdom 环境的running。恐怕您不走运,尽管您尝试在自己的构建中的编译配置中重现requireJsDomEnv 的效果。效果在这里:github.com/scalacenter/scalajs-bundler/blob/…
  • 我明白了,谢谢。如果不支持run,那么在浏览器中试用 SPA 的常用方法是什么?我想有一种明显的方法可以做到这一点,但我在这个领域还很陌生。
  • 通常你会运行你的服务器,它会提供theFrontend/webpack:fastOptJS的结果。在服务器提供的实际网页之外运行前端代码本身是相当罕见的。
猜你喜欢
  • 2018-07-04
  • 2014-11-04
  • 2011-06-21
  • 1970-01-01
  • 2020-09-07
  • 2022-01-26
  • 1970-01-01
  • 1970-01-01
  • 2018-08-26
相关资源
最近更新 更多