对JS库的模糊引用:jquery.js

ScalaJS

addSbtPlugin("org.scala-js" % "sbt-scalajs" % "0.6.9") 

with(包括jquery-ui dep之后):

 libraryDependencies += "be.doeraene" %%% "scalajs-jquery" % "0.9.0", jsDependencies += "org.webjars" % "jquery" % 2.2.3 / "jquery.js", jsDependencies += "org.webjars.bower" % "jquery-ui" % "1.11.4" / "draggable.js" 

使用fastOptJS编译时出错:

 [error] - Ambiguous reference to a JS library: jquery.js [error] Possible paths found on the classpath: [error] - META-INF/resources/webjars/jquery/2.2.3/jquery.js [error] - META-INF/resources/webjars/jquery/3.0.0-beta1/src/jquery.js [error] - META-INF/resources/webjars/jquery/3.0.0-beta1/dist/jquery.js 

我试过这个post: 如何解决“对JS库的模糊引用”? 以及如何解决SBT项目中webjars和scala-js jar之间的JS依赖关系?

但这对我没有帮助(还)

更新:我的Build项目定义了所有deps

 object BuildProject extends Build { lazy val myPluginProject = Project(id = "my-site", base = file(".")). settings( version := "0.1", scalaVersion := Versions.scala, ivyScala := ivyScala.value map { _.copy(overrideScalaVersion = true) }, libraryDependencies += "be.doeraene" %%% "scalajs-jquery" % "0.9.0" exclude("org.webjars","jquery"), libraryDependencies += "com.lihaoyi" %%% "upickle" % Versions.upickle, libraryDependencies += "com.lihaoyi" %%% "scalatags" % Versions.scalaTags, // we will not use use DOM directly so commenting it libraryDependencies += "org.scala-js" %%% "scalajs-dom" % Versions.dom, jsDependencies += "org.webjars" % "jquery" % Versions.jquery / "jquery.js", jsDependencies += "org.webjars.bower" % "jquery-ui" % Versions.jqueryUI / "draggable.js", jsDependencies += "org.webjars.bower" % "webcomponents.js" % Versions.webcomponents / "webcomponents-lite.js", skip in packageJSDependencies := false, jsDependencies += RuntimeDOM, scalaJSUseRhino in Global := false ) .enablePlugins(ScalaJSPlugin)} 

哪里

  val dom = "0.9.0" val upickle = "0.4.0" val jquery = "2.2.3" val jqueryUI = "1.11.4" val webcomponents = "0.7.21" 

更新2 – “2.2.3 / jquery.js”+依赖

  jsDependencies += "org.webjars" % "jquery" % Versions.jquery / "2.2.3/jquery.js", jsDependencies += "org.webjars.bower" % "jquery-ui" % Versions.jqueryUI / "core.js" dependsOn "META-INF/resources/webjars/jquery/2.2.3/jquery.js", 

然后:

 [error] Possible paths found on the classpath: [error] - META-INF/resources/webjars/jquery-ui/1.11.4/ui/core.js [error] - META-INF/resources/webjars/jquery/3.0.0-beta1/src/core.js 

更新3 – “1.11.4 / core.js”如果:

  jsDependencies += "org.webjars.bower" % "jquery-ui" % Versions.jqueryUI / "1.11.4/core.js" dependsOn "META-INF/resources/webjars/jquery/2.2.3/jquery.js", 

然后:

 [error] (compile:resolvedJSDependencies) org.scalajs.core.tools.jsdep.JSLibResolveException: Some references to JS libraries could not be resolved: [error] - Missing JS library: 1.11.4/core.js 

更新:

来自web-jar pom.xml,

  org.webjars jquery 1.11.1   

我没有看到它将取决于jquery 2.2.3 ……

作为一个用户,我想将等待几年才能使它成熟。

你的依赖

 jsDependencies += "org.webjars" % "jquery" % 2.2.3 / "jquery.js" 

是不明确的,因为有几个文件匹配类路径上的后缀jquery.js 。 您可以使用更长的后缀来消除它们的歧义,例如:

 jsDependencies += "org.webjars" % "jquery" % 2.2.3 / "2.2.3/jquery.js" 

这只会匹配路径

 META-INF/resources/webjars/jquery/2.2.3/jquery.js 

刚刚使用了另一个具有draggbale的jquery-ui。

  jsDependencies += "org.webjars" % "jquery" % Versions.jquery / "jquery.js", jsDependencies += "org.webjars" % "jquery-ui" % "1.11.4" / "jquery-ui.js" dependsOn "jquery.js" 

我使用的方式:

 val containerDyn = jQuery("#launcher-main-container") containerDyn.asInstanceOf[js.Dynamic].draggable() 

而且不确定为什么它会拉动3.0.0-beta1 dep