如何使用Scalajs 0.6和1.0.0交叉编译sbt顶级项目?
我想交叉编译ScalaJS facade。该立面为顶级sbt项目。但在编译时,ScalaJS 1.0.0-M8会出现以下错误:如何使用Scalajs 0.6和1.0.0交叉编译sbt顶级项目?,scala,sbt,scala.js,Scala,Sbt,Scala.js,我想交叉编译ScalaJS facade。该立面为顶级sbt项目。但在编译时,ScalaJS 1.0.0-M8会出现以下错误: Option not understood: sjsDefinedByDefault 这是一个最小的复制(): build.sbt: name:=“scala-js-d3v4” 版本:=“主快照” 规模规避:=“2.12.8” 启用插件(ScalaJSPlugin) ScalaOptions+=“-P:scalajs:sjsDefinedByDefault” plu
Option not understood: sjsDefinedByDefault
这是一个最小的复制():
build.sbt
:
name:=“scala-js-d3v4”
版本:=“主快照”
规模规避:=“2.12.8”
启用插件(ScalaJSPlugin)
ScalaOptions+=“-P:scalajs:sjsDefinedByDefault”
plugins.sbt
:
val scalaJSVersion=Option(System.getenv(“SCALAJS_版本”)).getOrElse(“0.6.28”)
addSbtPlugin(“org.scala js”%”sbt scalajs“%scalaJSVersion”)
使用0.6.28
的建筑可以正常工作,而1.0.0-M8
的建筑在以下情况下失败:
Option not understood: sjsDefinedByDefault
特拉维斯建筑:
scalajs项目必须是子项目才能将该选项仅作为scalajs设置应用?那么为什么它与0.6.28
一起工作呢
参考:如的末尾所述,您需要使用以下设置:
scalacOptions ++= {
if (scalaJSVersion.startsWith("0.6.")) Seq("-P:scalajs:sjsDefinedByDefault")
else Nil
}
哎哟我在发行说明中忽略了这一点。非常感谢您的回答!