2016-05-15 6 views
1

ScalaJSНеоднозначность ссылка на библиотеку JS: jquery.js

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

с (после того, как включен 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 

Я пробовал эту тему: How to resolve "Ambiguous reference to a JS library"? и этот How to troubleshoot JS dependencies between webjars and scala-js jars in an SBT project?

но это не помогло мне (пока)

ОБНОВЛЕНО: Мой Построить проект со всеми 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" 

UPDATE 2 - «2.2 .3/jquery.js "+ dependsON

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 

UPDATE 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 

UPDATE:

с веб-банку pom.xml,

<dependency> 
<groupId>org.webjars</groupId> 
<artifactId>jquery</artifactId> 
<version>1.11.1</version> 
</dependency> 
</dependencies> 

Я не вижу, что это будет зависеть от JQuery 2.2.3 ...

-

как пользователь, я думаю, будет ждать пару лет, чтобы сделать его зрелым.

+1

Хм. Какие другие зависимости у вас есть? Похоже, что что-то тянет в 3.0.0 ... –

+0

Привет, сес, нашли ли вы ответ на свой вопрос? – gurghet

+0

https://github.com/Sergey80/scalajs_bug - создал ошибку в репо для тестирования – ses

ответ

2

Ваша зависимость

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 
+0

https://github.com/Sergey80/scalajs_bug - создал ошибку, чтобы попробовать – ses

+0

Re '1.11.4/core.js ', посмотрите на пути в неоднозначной ошибке, это должно быть' 1.11.4/ui/core.js' или более просто 'ui/core.js'. – sjrd

0

Просто сделал использование другого Jquery-интерфейса, который имеет draggbale в нем.

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 отд

 Смежные вопросы

  • Нет связанных вопросов^_^