Val*_*lev 24 workflow clojure read-eval-print-loop clojurescript
我正在尝试将ClojureScript用于项目.要成为一个快乐的开发人员,我需要一个快速的反馈循环:编写一些代码并尽快看到它.我也喜欢在当前页面的上下文中使用REPL.
我正在使用lein-cljsbuild和从我遇到的问题我认为我没有正确设置它.
首先,即使在"JWM热身"之后,小文件的编译时间也太大了:optimizations :simple:
Compiling "resources/public/js/cljs.js" from ["src-cljs"]...
Successfully compiled "resources/public/js/cljs.js" in 8.233018 seconds.
Compiling "resources/public/js/cljs.js" from ["src-cljs"]...
Successfully compiled "resources/public/js/cljs.js" in 5.522989 seconds.
Compiling "resources/public/js/cljs.js" from ["src-cljs"]...
Successfully compiled "resources/public/js/cljs.js" in 8.144354 seconds.
Run Code Online (Sandbox Code Playgroud)
其次,我不时会得到这样的东西:
Compiling "resources/public/js/cljs.js" from ["src-cljs"]...
Compiling "resources/public/js/cljs.js" failed.
Exception in thread "main" java.lang.NullPointerException
at java.util.regex.Matcher.getTextLength(Matcher.java:1140)
at java.util.regex.Matcher.reset(Matcher.java:291)
at java.util.regex.Matcher.<init>(Matcher.java:211)
at java.util.regex.Pattern.matcher(Pattern.java:888)
at clj_stacktrace.utils$re_gsub.invoke(utils.clj:6)
# ... many similar useless lines
at clojure.lang.Var.applyTo(Var.java:532)
at clojure.main.main(main.java:37)
Run Code Online (Sandbox Code Playgroud)
这些堆栈跟踪(大部分时间与语法错误有关,正如我从实验中所理解的那样)比没有帮助更糟糕:它们不仅提供关于错误的零线索,还停止自动重新编译.在每次这样的堆栈跟踪之后,我应该做这些事情:
Cmd-C的shelllein cljsbuild autolein cljsbuild auto一次我无法理解的第三件事是REPL.从interwebs我已经学会了如何连接rlwrap lein trampoline cljsbuild repl-listen到当前页面.但是,每次重新加载,导航和语法错误(上帝禁止您忘记使用rlwrap并按箭头键)都会使REPL完全卡住.我必须重新启动它(约10秒)并在此之后重新加载页面,然后再开始在友好的环境中尝试输出.
我想,可能有人已经全力以赴,并且有一个有效的工作流程.请帮我从一开始就把它全部设置好,因为我觉得自己是一个失败的软件工程师.
看看无花果轮!这就像类固醇的肝脏重装。
\n使用 clojurescript 和前端开发从未如此有趣!
\n亲自看看(演示有点过时 \xe2\x80\x93 现在更好了!)
\n它不仅仅是在文件更改时重新加载页面 \xe2\x80\x93 它为您提供交互式编程Bret维克多正在谈论(如果您还没有看过,我建议您观看该演讲)