Chr*_*Bui 25 read-eval-print-loop clojurescript
我正在尝试为Clojurescript设置一个环境.我遇到的问题是不知道如何设置它以便我可以从emacs连接到Clojurescript Browser REPL,因此我可以直接从编辑器评估表单并将其显示在浏览器中.
我试过的事情:
我尝试使用Cemerick的piggieback并搭载nREPL.我真的不知道如何从文档中配置它.在弄清楚我必须在项目文件夹的根目录中创建一个index.html文件后,我才能使它工作.除了服务器不提供我的资产.
我尝试使用Clojurescript wiki中的bash脚本设置inferior-lisp.但是,每当我尝试运行劣质lisp程序时,我都会遇到"错误的类型参数:stringp,nil".
这是我理想的工作流程:
我有一个项目文件夹/ resources/public文件夹,其中包含我的资产和html文件.我可以通过响铃或使用python的简单http服务器启动一个以某种方式提供这些文件的Web服务器.我可以从emacs连接到REPL并将表单评估到其中.
Ian*_*Ian 20
Cemerick再次拯救:奥斯汀(https://github.com/cemerick/austin)正是你所追求的.
Austin为您提供了两个选项:在浏览器中评估JS的REPL("项目REPL"),或者更完整,集成的浏览器连接的REPL.听起来后者就是你所追求的,你需要更加努力地学习它的文档:https://github.com/cemerick/austin/tree/master/browser-connected-repl-sample
为了使浏览器连接的REPL正常工作,Chas的例子非常简单,可归结为:
(cemerick.austin.repls/browser-connected-repl-js)(def repl-env (reset! cemerick.austin.repls/browser-repl-env (cemerick.austin/repl-env)))(cemerick.austin.repls/cljs-repl repl-env)(.alert js/window "Hi!")应该证明.Piggieback和Austin之间的主要区别在于第一步和第二步:中间件使用atom来添加连接回nREPL的内联JavaScript块.由于HTTP URL是在运行时确定的,因此Ring服务器和客户端JavaScript需要协同工作.
FWIW我在user命名空间中创建了一个函数来加速连接CLJS REPL:
(defn cljs-browser-repl
"Fire up a browser-connected ClojureScript REPL"
[]
(let [repl-env (reset! cemerick.austin.repls/browser-repl-env
(cemerick.austin/repl-env))]
(cemerick.austin.repls/cljs-repl repl-env)))
Run Code Online (Sandbox Code Playgroud)