我花了将近2天的时间才能达到可以使用ClojureScript在浏览器中呈现一些html
的阶段,但是距离不是很近。
到目前为止,我已经安装了:Clojure,leiningen,Figwheel,IntelliJ和Cursive。我想使用试剂并重新构图。我尝试过Chestnut(这是我最近一次看到的渲染HTML)。我不确定是否还需要其他任何东西。
我想要实现的是将所有这些工具用作我的环境并开始创建Web应用程序。
Figwheel似乎是主要问题。
我目前要去的地方:使用IntelliJ和Cursive创建一个Clojure项目。我正在关注this文章以尝试启动并运行-我已经说到Start Figwheel from the terminal (lein figwheel)
。当我这样做时,IntelliJ中的终端会打印
Exception in thread "main" java.lang.ClassNotFoundException: javax.xml.bind.DatatypeConverter, compiling:(cljs/closure.clj:1:1)
。
当我搜索此错误时,一种解决方案是将该行添加到project.clj
:
:jvm-opts ["--add-modules" "java.xml.bind"]
然后我再次在终端上运行lein figwheel
,这次我得到了:
java.lang.module.FindException: Module java.xml.bind not found
然后我进入IntelliJ>文件>项目结构>平台SDK,并将SDK路径更改为1.8。我已经尝试了12和8。什么都没有。
我要关闭吗?我该如何前进?我已经完成了入门教程,但它们只专注于REPL,而没有全面介绍Web开发环境等。
答案 0 :(得分:0)
在过去的一年中,使用Figwheel的最佳方法不是使用Leiningen,而是使用Clojure deps.edn
系统。
有关详细信息,请访问Figwheel-Main网站:https://figwheel.org/
完成本教程。
要使用Cursive,我首先创建项目目录和文件,然后通过以下方式将其添加到Cursive / IntelliJ:
File -> New -> Project from Existing Sources
对于基于Clojure'lein'的项目,我单击文件project.clj
。对于基于ClojureScript'deps'的项目,您可以单击deps.edn
或仅单击父目录(我没有尝试创建CLJS项目)。
答案 1 :(得分:0)
问题是由您使用较新的JDK版本(9+)和仍然希望使用JDK8的较旧的figwheel引起的。
一个解决方法是您已经找到的--add-modules
,但是我很确定软件包名称是javax.xml.bind
,但是我可能是错的。
另一种“更轻松”的解决方案是向:dependencies
向量添加附加依赖项。
[javax.xml.bind/jaxb-api "2.3.0"]