我如何使用 Scalajs 0.6 和 1.0.0 cross-compile 一个 sbt top-level 项目?
How do I cross-compile a sbt top-level project with Scalajs 0.6 and 1.0.0?
我想要 cross-compile ScalaJS 门面。这个门面是一个 top-level sbt 项目。但是当我编译时,ScalaJS 1.0.0-M8 出现以下错误:
Option not understood: sjsDefinedByDefault
这里是一个最小复制(https://github.com/fdietze/scala-js-d3v4/tree/sjsDefinedByDefault):
build.sbt
:
name := "scala-js-d3v4"
version := "master-SNAPSHOT"
scalaVersion := "2.12.8"
enablePlugins(ScalaJSPlugin)
scalacOptions += "-P:scalajs:sjsDefinedByDefault"
plugins.sbt
:
val scalaJSVersion = Option(System.getenv("SCALAJS_VERSION")).getOrElse("0.6.28")
addSbtPlugin("org.scala-js" % "sbt-scalajs" % scalaJSVersion)
使用 0.6.28
构建有效,而 1.0.0-M8
失败:
Option not understood: sjsDefinedByDefault
特拉维斯构建:https://travis-ci.org/fdietze/scala-js-d3v4/builds/560544812
必须 scalajs-projects 是子项目才能将选项仅作为 scalajs 设置应用?为什么它与 0.6.28
一起使用?
供参考:https://www.reddit.com/r/scala/comments/786gco/error_bad_option_pscalajssjsdefinedbydefault/
如the release notes of Scala.js 1.0.0-M8末尾所述,您需要使用以下设置:
scalacOptions ++= {
if (scalaJSVersion.startsWith("0.6.")) Seq("-P:scalajs:sjsDefinedByDefault")
else Nil
}
我想要 cross-compile ScalaJS 门面。这个门面是一个 top-level sbt 项目。但是当我编译时,ScalaJS 1.0.0-M8 出现以下错误:
Option not understood: sjsDefinedByDefault
这里是一个最小复制(https://github.com/fdietze/scala-js-d3v4/tree/sjsDefinedByDefault):
build.sbt
:
name := "scala-js-d3v4"
version := "master-SNAPSHOT"
scalaVersion := "2.12.8"
enablePlugins(ScalaJSPlugin)
scalacOptions += "-P:scalajs:sjsDefinedByDefault"
plugins.sbt
:
val scalaJSVersion = Option(System.getenv("SCALAJS_VERSION")).getOrElse("0.6.28")
addSbtPlugin("org.scala-js" % "sbt-scalajs" % scalaJSVersion)
使用 0.6.28
构建有效,而 1.0.0-M8
失败:
Option not understood: sjsDefinedByDefault
特拉维斯构建:https://travis-ci.org/fdietze/scala-js-d3v4/builds/560544812
必须 scalajs-projects 是子项目才能将选项仅作为 scalajs 设置应用?为什么它与 0.6.28
一起使用?
供参考:https://www.reddit.com/r/scala/comments/786gco/error_bad_option_pscalajssjsdefinedbydefault/
如the release notes of Scala.js 1.0.0-M8末尾所述,您需要使用以下设置:
scalacOptions ++= {
if (scalaJSVersion.startsWith("0.6.")) Seq("-P:scalajs:sjsDefinedByDefault")
else Nil
}