gpt4 book ai didi

clojure - 有没有好的 ClojureScript 工作流程?

转载 作者:行者123 更新时间:2023-12-02 06:30:50 29 4
gpt4 key购买 nike

我正在尝试在项目中使用 ClojureScript。要成为一名快乐的开发人员,我需要一个快速的反馈循环:编写一些代码并尽快查看。我还想在当前页面的上下文中使用 REPL。

我正在使用 lein-cljsbuild,从我遇到的问题来看,我认为我未能正确设置它。

首先,即使在使用 :optimizations :simple 进行“JWM 预热”之后,小文件的编译时间也太大了:

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.

其次,我时不时会收到这样的东西:

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)

这些堆栈跟踪(大多数时候与语法错误有关,正如我从实验中了解到的),比没有帮助更糟糕:它们不仅提供了关于错误的零线索,而且还停止了自动重新编译。在每次这样的堆栈跟踪之后,我应该做这些事情:

  • 使用我称之为“假装你是解析器”的技术找出问题所在。感谢上帝,这是 Lisp,我唯一应该做的就是仔细数匹配的括号。
  • 在运行 lein cljsbuild auto 的 shell 中按 Cmd-C
  • 再次运行lein cljsbuild auto
  • 进行一些无用的更改,例如在文件中插入换行符,以触发新的构建
  • 等待大约 30 秒,直到文件再次编译,因为 JVM 必须再次“预热”
  • 在很多情况下,此时我会得到另一个堆栈跟踪,在获得该堆栈跟踪后,我必须起泡沫,冲洗并重复所有该死的过程

我无法理解的第三件事是 REPL。从互联网上我学会了如何将 rlwrap lein Trampoline cljsbuild repl-listen 连接到当前页面。然而,控制台中的每次重新加载、导航和语法错误(上帝禁止您忘记使用 rlwrap 并按箭头键)都会使 REPL 完全卡住。我必须重新启动它(大约 10 秒)并重新加载页面,然后再次开始在友好的环境中尝试一些东西。

我想,可能有人已经弄清楚了这一切,并且有一个可行的工作流程。请帮我从一开始就进行设置,因为我感觉自己像一个失败的软件工程师。

最佳答案

对我来说Catnip为 ClojureScript 提供目前最佳的开发体验。

关于clojure - 有没有好的 ClojureScript 工作流程?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14551693/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com