我一直在修补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。非常感谢任何帮助。
答案 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)
我对这个话题也有一些问题。以下是帮助我的技巧:
rm -rf ~/.m2/*
lein deps
"broken pipe"
当有最后一次brepl交互的时间太长时。所以,刷新浏览器,这就是全部lein cljsbuild once
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完全挂起。由于没有输出,因此很难诊断。在尝试更多侵入性补救措施之前,值得验证。