生成案例 class with Binding.scala Vars using Scala.meta throws an exception

Generate a case class with Binding.scala Vars using Scala.meta throws an exception

我有一个 scala.js 项目。 Scala.Meta 和 Binding.scala.

我有一个奇怪的行为

我想从一个案例 class:

创建一个案例 class
case class SimpleCaseClass(i: Int, s: String, list: Seq[String])

应该生成到:

SimpleCaseClassFormData(Var[Int], Var[String], Vars[String])

我一收到 Vars,就收到以下错误:

A method defined in a JavaScript raw type of a Scala.js library has been called. This is most likely because you tried to run Scala.js binaries on the JVM. Make sure you are using the JVM version of the libraries.
java.lang.Error: A method defined in a JavaScript raw type of a Scala.js library has been called. This is most likely because you tried to run Scala.js binaries on the JVM. Make sure you are using the JVM version of the libraries.
    at scala.scalajs.js.package$.native(package.scala:134)
    at scala.scalajs.js.Array.push(Array.scala:106)
    at scala.scalajs.js.JSConverters$JSRichGenTraversableOnce$.$anonfun$toJSArray(JSConverters.scala:60)

没有(例如SimpleCaseClassFormData(Var[Int], Var[String]) )它有效。

在这里你可以找到整个项目:scala-adapters-form

宏注释已弃用(参见 https://github.com/scalameta/scalameta/issues/1182

您可以创建一个基于 Scala Meta 的 sbt 插件。请参阅 https://github.com/ThoughtWorksInc/sbt-example/ 作为实施此类插件的示例。

为避免版本不兼容,您应该使用 sbt 的 built-in Scala Meta,它是 1.7.0 版。