ClojureScript bRepl根本没有响应

时间:2013-10-03 10:37:11

标签: clojure leiningen read-eval-print-loop clojurescript

我一直在修补clojure和clojurescript一段时间,我总是发现浏览器重复非常反应迟钝。它通常挂起而不给出结果,或者抛出破坏的管道异常。现在我处于一种总是拒绝工作的境地。

假设我下载了modern-cljs教程第2部分,我执行了所有步骤来启动页面,加载已编译的javascript并启动bRepl。当我尝试评估像(+ 3 4)这样简单的东西时,它就不起作用了。

我在OSX 10.8.4上,我的leiningen版本在Java 1.6.0_51 Java HotSpot(TM)64位服务器VM上是2.3.2。非常感谢任何帮助。

5 个答案:

答案 0 :(得分:3)

我建议克隆modern-cljs repo,然后签出tutorial-02分支,然后清理并重新编译。

git clone https://github.com/magomimmo/modern-cljs.git
cd modern-cljs
git checkout tutorial-02
lein do clean, cljsbuild clean
lein cljsbuild once

确保您的http服务器正在运行(我假设端口是3000)并且其根目录设置为modern-cljs / resources / public目录 然后运行repl-listen子任务,如下所示:

lein trampoline cljsbuild repl-listen

等待cljs提示。然后访问localhost:3000/simple.html URL并等待与brepl的连接准备就绪。

在cljs提示符下,您现在应该能够评估cljs表达式。最后,重新加载上述URL。

如果仍然无效,请尝试删除您的maven存储库:

rm -rf ~/.m2/repository

并重做lein do命令链中的所有内容。

最后,您可以按照https://github.com/magomimmo/modern-cljs/blob/master/doc/tutorial-18.md#the-need-of-a-more-comfortable-brepl-experience教程设置一个更舒适的bREPL,使用https://github.com/cemerick/piggieback

HIH

答案 1 :(得分:2)

我对这个话题也有一些问题。以下是帮助我的技巧:

  1. 清理leain deps:rm -rf ~/.m2/*
  2. 在项目根目录中下载lein deps:lein deps
  3. 我看到这条消息:"broken pipe"当有最后一次brepl交互的时间太长时。所以,刷新浏览器,这就是全部
  4. 有时我的brepl挂在我第一次尝试评估代码时,再次尝试刷新浏览器
  5. 在开始使用brepl之前不要忘记运行:lein cljsbuild once
  6. 祝你好运

    PS:无论如何,如果你想拥有一个舒适的brepl体验,你必须看看https://github.com/cemerick/austin。我已经测试了这个brepl并且工作正常https://github.com/juanantonioruz/client

答案 2 :(得分:1)

你应该尝试不安全地使用Chromium:

  • OS X:

    open -a Chromium --args --disable-web-security

  • Linux的:

    chromium --disable-web-security

然后在不安全的浏览器中访问您的页面并尝试连接到brepl。


说明:

因为当brepl在端口9000上运行时,托管该页面的Web服务器必然使用不同的端口,这构成XSS(参见[此堆栈溢出讨论] ])。

解决此问题的最简单方法是使用Chromium进行不安全的调试,但如果需要,可以通过其他方式启用XSS。

答案 3 :(得分:0)

您在project.clj中指定了哪些ClojureScript版本?如果您没有指定特定版本,这可能是您麻烦的根源。 0.0-1913是最新的一个。

答案 4 :(得分:0)

当我忘记在浏览器中拨打repl/connect时,我也看到REPL完全挂起。由于没有输出,因此很难诊断。在尝试更多侵入性补救措施之前,值得验证。