Figwheel
它们都是 lein 插件,但 Figwheel 不仅将 cljs 编译成 javascript,而且还具有以下功能热加载它允许交互式编程,实际上 Figwheel 使用 cljsbuild 来编译 cljs。
您可以使用以下方法创建一个Figwheel应用程序:
lein new figwheel app
如果你运行:
lein figwheel
Figwheel默认会在3449端口创建一个服务器进程,你可以将浏览器连接到localhost:3449
当您更改源代码时,您将看到 Figwheel 编译代码并将新编译的 javascript 热加载到您的浏览器中(使用 websockets)。
CLJS构建
Cljsbuild 是一个用于方便将 cljs 编译(或转译)为 javascript 的插件,它可以自动执行(auto
)通过观察源文件中的更改或者您可以使用once
构建一次js,就这样了。
否则,如果没有 cljsbuild,您应该使用类似以下内容的内容:
java -cp cljs.jar:src clojure.main build.clj
Where cljs.jar
是 ClojureScript 编译器并且build.clj
是项目的构建配置。
Info
检查ClojureScript 入门页面 http://clojurescript.org/guides/quick-start,将使您对构建过程的工作原理有一些了解。
另请检查如何使用带灯台的图轮 https://github.com/bhauman/lein-figwheel/wiki/Running-figwheel-with-LightTable,这是一个很好的匹配,更高级的方法可能是在 emacs 上使用 CIDER,但配置一开始可能很麻烦。
另外,使用其中一种比另一种有什么好处吗?
它们是不同的工具,Fighweelwrapscljsbuild,所以我会尽可能使用 Figwheel。