首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >不能用Lift和Scala.js构建一个简单的项目

不能用Lift和Scala.js构建一个简单的项目
EN

Stack Overflow用户
提问于 2015-10-30 08:39:16
回答 1查看 339关注 0票数 0

我做了一个简单的项目:https://github.com/eje211/scalajswithlift

我尝试用Lift创建一个JSON对象,并使用Scala.js在HTML中打印它。但我知道这个错误:

代码语言:javascript
运行
复制
[info] Compiling 1 Scala source to /Users/eeytan/src/scalajs/target/scala-2.11/classes...
[info] Fast optimizing /Users/eeytan/src/scalajs/target/scala-2.11/scala-js-tutorial-fastopt.js
[error] Referring to non-existent class Lnet_liftweb_json_JsonDSL$
[error]   called from Ltutorial_webapp_TutorialApp$.main__V
[error]   called from sjs_js_JSApp$class.$$js$exported$meth$main__sjs_js_JSApp__O
[error]   called from Ltutorial_webapp_TutorialApp$.$$js$exported$meth$main__O
[error]   called from Ltutorial_webapp_TutorialApp$.main
[error]   exported to JavaScript with @JSExport
[error] involving instantiated classes:
[error]   Ltutorial_webapp_TutorialApp$
[error] Referring to non-existent class Lnet_liftweb_json_package$
[error]   called from Ltutorial_webapp_TutorialApp$.main__V
[error]   called from sjs_js_JSApp$class.$$js$exported$meth$main__sjs_js_JSApp__O
[error]   called from Ltutorial_webapp_TutorialApp$.$$js$exported$meth$main__O
[error]   called from Ltutorial_webapp_TutorialApp$.main
[error]   exported to JavaScript with @JSExport
[error] involving instantiated classes:
[error]   Ltutorial_webapp_TutorialApp$
[error] Referring to non-existent class Lnet_liftweb_json_JsonAST$
[error]   called from Ltutorial_webapp_TutorialApp$.main__V
[error]   called from sjs_js_JSApp$class.$$js$exported$meth$main__sjs_js_JSApp__O
[error]   called from Ltutorial_webapp_TutorialApp$.$$js$exported$meth$main__O
[error]   called from Ltutorial_webapp_TutorialApp$.main
[error]   exported to JavaScript with @JSExport
[error] involving instantiated classes:
[error]   Ltutorial_webapp_TutorialApp$
[error] Referring to non-existent method Lnet_liftweb_json_JsonAST$.render__Lnet_liftweb_json_JsonAST$JValue__s_text_Document
[error]   called from Ltutorial_webapp_TutorialApp$.main__V
[error]   called from sjs_js_JSApp$class.$$js$exported$meth$main__sjs_js_JSApp__O
[error]   called from Ltutorial_webapp_TutorialApp$.$$js$exported$meth$main__O
[error]   called from Ltutorial_webapp_TutorialApp$.main
[error]   exported to JavaScript with @JSExport
[error] involving instantiated classes:
[error]   Ltutorial_webapp_TutorialApp$
[error] Referring to non-existent method Lnet_liftweb_json_JsonDSL$.int2jvalue__I__Lnet_liftweb_json_JsonAST$JInt
[error]   called from Ltutorial_webapp_TutorialApp$.main__V
[error]   called from sjs_js_JSApp$class.$$js$exported$meth$main__sjs_js_JSApp__O
[error]   called from Ltutorial_webapp_TutorialApp$.$$js$exported$meth$main__O
[error]   called from Ltutorial_webapp_TutorialApp$.main
[error]   exported to JavaScript with @JSExport
[error] involving instantiated classes:
[error]   Ltutorial_webapp_TutorialApp$
[error] Referring to non-existent method Lnet_liftweb_json_JsonDSL$.pair2Assoc__T2__F1__Lnet_liftweb_json_JsonDSL$JsonAssoc
[error]   called from Ltutorial_webapp_TutorialApp$.main__V
[error]   called from sjs_js_JSApp$class.$$js$exported$meth$main__sjs_js_JSApp__O
[error]   called from Ltutorial_webapp_TutorialApp$.$$js$exported$meth$main__O
[error]   called from Ltutorial_webapp_TutorialApp$.main
[error]   exported to JavaScript with @JSExport
[error] involving instantiated classes:
[error]   Ltutorial_webapp_TutorialApp$
[error] Referring to non-existent method Lnet_liftweb_json_JsonDSL$.string2jvalue__T__Lnet_liftweb_json_JsonAST$JString
[error]   called from Ltutorial_webapp_TutorialApp$.main__V
[error]   called from sjs_js_JSApp$class.$$js$exported$meth$main__sjs_js_JSApp__O
[error]   called from Ltutorial_webapp_TutorialApp$.$$js$exported$meth$main__O
[error]   called from Ltutorial_webapp_TutorialApp$.main
[error]   exported to JavaScript with @JSExport
[error] involving instantiated classes:
[error]   Ltutorial_webapp_TutorialApp$
[error] Referring to non-existent method Lnet_liftweb_json_package$.pretty__s_text_Document__T
[error]   called from Ltutorial_webapp_TutorialApp$.main__V
[error]   called from sjs_js_JSApp$class.$$js$exported$meth$main__sjs_js_JSApp__O
[error]   called from Ltutorial_webapp_TutorialApp$.$$js$exported$meth$main__O
[error]   called from Ltutorial_webapp_TutorialApp$.main
[error]   exported to JavaScript with @JSExport
[error] involving instantiated classes:
[error]   Ltutorial_webapp_TutorialApp$
[trace] Stack trace suppressed: run last compile:fastOptJS for the full output.
[error] (compile:fastOptJS) There were linking errors
[error] Total time: 1 s, completed Oct 30, 2015 5:21:03 PM

我不明白为什么。

如果我从build.sbt中删除注释,就会得到以下错误:

代码语言:javascript
运行
复制
> ~fastOptJS
[trace] Stack trace suppressed: run last compile:scalaJSPreLinkClasspath for the full output.
[error] (compile:scalaJSPreLinkClasspath) org.scalajs.core.tools.classpath.JSLibResolveException: Some references to JS libraries could not be resolved:
[error] - Ambiguous reference to a JS library: jquery.js
[error]   Possible paths found on the classpath:
[error]   - scala/tools/nsc/doc/html/resource/lib/jquery.js
[error]   - META-INF/resources/webjars/jquery/2.1.3/jquery.js
[error]   originating from: scalajs:compile
[error] Total time: 1 s, completed Oct 30, 2015 5:35:09 PM

我不明白怎么回事。我不能在Scala.js中使用Lift JSON吗?

EN

Stack Overflow用户

发布于 2015-10-30 09:22:48

Lift和Lift JSON是JVM专用的项目。据我所知,它们不是为Scala.js移植/构建的。因此,不可以在Scala.js中使用它们。

一般来说,库需要交叉编译并发布给Scala/JVM和Scala.js,以便您能够使用它们。如果这有意义的话,您可以要求Lift开发人员交叉编译(一些)他们的库。

也就是说,在Scala.js中,您通常可以使用JSON来处理JSON数据结构:

代码语言:javascript
运行
复制
import scala.scalajs.js
import js.Dynamic.{literal => lit}

val j = lit(a = 2, b = "Hello.")
println(js.JSON.stringify(j, space = 2))

而且,通常情况下,您甚至根本不会直接操作JSON。相反,您将使用Scala.js可用的任何序列化库,例如uPickle刺刺BooPickle

票数 2
EN
查看全部 1 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33431721

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档