gpt4 book ai didi

browser - 启动 ClojureScript 浏览器 REPL

转载 作者:行者123 更新时间:2023-12-02 21:17:27 24 4
gpt4 key购买 nike

我正在尝试在浏览器中启动 ClojureScript REPL。理想情况下,我还不想使用 Austin:我首先想让最简单的 REPL 能够工作。

我尝试遵循各种教程,但到目前为止我还没有成功。基本上我不明白人们说的是什么意思:“启动 ClojureScript 浏览器 REPL”。

到目前为止我做到了:

lein new mies hellow

还有:

lein cljsbuild auto hellow

这是我的 core.js 文件:

(ns hellow.core
(:require [clojure.browser.repl :as repl]))

(enable-console-print!)

(println "Hello world!")
(. js/console (log "Hello again"))
(repl/connect "http://localhost:9000/repl")
(. js/console (log "Ah, this prints too"))

当我打开 index.html(调用 core.js)时,我可以在 Chrome 开发者工具的 JavaScript 控制台中看到所有内容都已正确记录。

但是(repl/connect ...)显然失败了。以下是 Chrome 开发者工具的显示内容;

Failed to load resource http://localhost:9000/repl?xpc=%7B%22cn%22%...

在几乎所有关于 ClojureScript 的论坛帖子/博客文章/教程中,我都读到过有关该主题的内容,我偶然发现这样一句话:“启动浏览器 REPL” 或类似内容。

如何启动浏览器 REPL?这是必须在从浏览器加载 index.html 之前完成的事情吗?

我可以从 Emacs 启动此浏览器 REPL 吗?

如何在不加载 index.html/core.js 的情况下测试浏览器 REPL 是否正常工作?

在浏览器中加载 index.html/core.js 后,我如何验证 (repl/connect ...) 内的 >core.js 确实工作并且实际上连接到了 REPL?

最佳答案

启动 repl 服务器的最简单和最基本的方法(您已经包含了客户端代码)是这样做

$ lein trampoline cljsbuild repl-listen
Running ClojureScript REPL, listening on port 9000.
To quit, type: :cljs/quit
ClojureScript:cljs.user>

此时,如果您尝试评估任何表达式,例如 (+ 1 2),您将看到 repl 挂起,因为它没有可供评估的环境。

此时您将转到index.html(记住从网络服务器提供它,否则连接将失败,不要使用file:/// urls)并在浏览器上打开它。

http://localhost:9000/repl?xpc=... 的连接应该可以正常工作,并且 repl 应该解除阻止并打印 3。从此以后,任何命令都将在浏览器环境中执行。

我喜欢尝试 (js/alert "hi") 来查看 repl 是否已连接,如果有效,它将在浏览器窗口中 alert hi。

请记住,浏览器窗口是您的执行环境,因此如果您刷新它,您将丢失运行时值,并且如果您不再次定义它们,则将无法从 repl 访问它们。

使用 cljsbuild 还有:(lein cljsbuild help)

repl-listen
Run a REPL that will listen for incoming connections. (the one I used above)
repl-launch
Run a REPL and launch a custom command to connect to it.
repl-rhino
Run a Rhino-based REPL (JVM based JS execution environment, no browser needed).

此外,对于准系统 repl,将其与 rlwrap 一起使用来获取 readline 快捷方式(Ctrl+a 等)和 repl 历史记录等非常有用:

$ rlwrap lein trampoline cljsbuild repl-listen

我希望这一切有所帮助。

关于browser - 启动 ClojureScript 浏览器 REPL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25962541/

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