Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/meteor/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sbt 如何结合crossProject和dependsOn_Sbt_Scala.js - Fatal编程技术网

Sbt 如何结合crossProject和dependsOn

Sbt 如何结合crossProject和dependsOn,sbt,scala.js,Sbt,Scala.js,我有一个多项目定义,如下所示: lazy val commonSettings = settings( libraryDependencies ++= Seq( "ch.qos.logback" % "logback-classic" % "1.1.2", ... ) lazy val core = (project in file(".")). settings(commonSettings: _*). settings(... ) lazy val web

我有一个多项目定义,如下所示:

lazy val commonSettings = settings(
  libraryDependencies ++= Seq(
    "ch.qos.logback" % "logback-classic" % "1.1.2",
     ...
)

lazy val core = (project in file(".")).
  settings(commonSettings: _*).
  settings(...
)

lazy val web = (project in file("web")).
  settings(commonSettings: _*).
  settings(...
).dependsOn(core)
问题是我想将web项目设置为使用Scala JS客户机/服务器模型。因此,我需要扩展web项目,使用crossProject将其拆分为js/jvm/共享部分。但我不确定实现这一目标的最佳方式。如果我尝试做以下事情:

lazy val web = crossProject.
  settings(commonSettings: _*).
  settings(...
).jsSettings(...
).jvmSettings(...
).dependsOn(core)
我的build.scala出现编译错误:

。。。类型失配;找到[错误]:需要sbt.Project[错误]: org.scalajs.sbtplugin.cross.CrossClasspathDependency[错误]惰性val 网= crossProject.settings().jsSettings().jvmSettings().dependsOn(核心) [错误]
^


省略web项目的dependsOn

lazy val webJS = web.js.dependsOn(...)

这对我来说很有意思。

你能分享完整的错误信息吗?为什么要扩展现有项目?你看过这个例子了吗?相反,你可能想让你的
core
成为一个交叉项目,而把
web
作为一个普通项目,使用
.enablePlugins(ScalaJSPlugin)