如何使用Cursive和Figwheel设置ClojureScript环境?

时间:2019-08-30 14:38:23

标签: clojure clojurescript figwheel cursive

我花了将近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开发环境等。

2 个答案:

答案 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"]