【问题标题】:Connect to browser with austin通过 austin 连接到浏览器
【发布时间】:2014-05-05 13:39:12
【问题描述】:

我为自己的项目遵循了以下说明:https://github.com/cemerick/austin/tree/master/browser-connected-repl-sample。我认为事情在第 2 步出轨了:

进入 REPL 后(它将在示例应用程序的主 命名空间,cemerick.austin.bcrepl-sample),评估(运行)。那只是 在 8080 端口启动码头;如果您打开该服务器的浏览器, 您将看到此页面(示例将其重新用作其唯一内容)。

我一直使用$ lein ring server-headless 启动我的服务器,而不是从 REPL 启动,我很确定这就是导致[:script (cemerick.austin.repls/browser-connected-repl-js)] 无法生成正确 JavaScript 的原因。在浏览器中,源代码显示<script></script>,而它在 REPL 中正确生成。

如果这确实是问题所在,我将如何从 REPL 运行相当于 $ lein ring server-headless 的内容?

【问题讨论】:

    标签: read-eval-print-loop clojurescript ring


    【解决方案1】:

    我前段时间处理过类似的情况。

    这里我留下了获取这个奥斯汀脚本的步骤:

    1. 项目repl中介绍:(def repl-env (reset! cemerick.austin.repls/browser-repl-env (cemerick.austin/repl-env)))
    2. 将结果表达式Browser-REPL ready @ http://localhost:XXXXX/ZZZ/repl/start适配到js脚本:<script>;goog.require('clojure.browser.repl');clojure.browser.repl.connect.call(null, 'http://localhost:XXXX/ZZZ/repl');</script>。请注意,每次只有“XXXX/ZZZ”发生变化
    3. 写入 nrepl (cemerick.austin.repls/cljs-repl repl-env)
    4. 重新加载浏览器

    祝你好运!

    【讨论】:

      【解决方案2】:

      我从来没有使用过 $ lein ring server-headless,因为我在发现非常需要解决这个问题之前切换到了 immutant。

      Immutant 在启动时会创建一个 repl,其端口可以在您的项目文件中指定。我在 emacs 中使用 cider 并使用 M-x cider 连接到它,并在出现提示时指定端口。从这里只需按照教程步骤操作。一件事引起了我的注意并花了几分钟才弄清楚,你的 html 中带有 browser-connected-repl-js 的脚本标签需要在你的 <body> 的最后;在<head> 中似乎不起作用。

      对于具有类似问题的设置,关键在于您需要重置一个原子,并且您的 html 代码中的 javascript 需要访问该原子。对于 $ lein ring server-headless 的原始问题,您可能需要在 repl 中启动服务器并按照教程进行操作。

      【讨论】:

        猜你喜欢
        • 2011-10-07
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-08-10
        • 1970-01-01
        • 1970-01-01
        • 2015-10-23
        相关资源
        最近更新 更多