如何使用Scalajs 0.6和1.0.0交叉编译sbt顶级项目?

如何使用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

我想交叉编译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”
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
}

哎哟我在发行说明中忽略了这一点。非常感谢您的回答!