- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试在浏览器中启动 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/
如何从 clojurescript 程序中获取我所在的 Clojurescript 命名空间?我想这样做确实提供了某些调试信息(它只需要在开发模式下工作) 最佳答案 命名空间在 ClojureScri
我正在考虑使用 ClojureScript 构建一个网站。在客户端和服务器端都编写 ClojureScript 是否有意义,就像 node.js 一样? 最佳答案 这是可能的,但绝对没有理由不在服务器
我正在与Om合作,但我不完全理解以下表达式: (.. e -target -checked) 在这里,“ e”是一个JavaScript事件,“-target -checked”是一种访问属性的方式
我想在 ClojureScript 中前向声明一个函数。种 (defn a [] (b)) ... (defn b [] ...) 我觉得在用法(b)前面放一个(def b nil)是个什么样的作品,
我想在 ClojureScript 中前向声明一个函数。种 (defn a [] (b)) ... (defn b [] ...) 我觉得在用法(b)前面放一个(def b nil)是个什么样的作品,
我不知道像 this 这样的“自托管”clojurescript 实现如何和 this被实现。 但是,鉴于 clojurescript 编译器是用 clojure 编写的并将 clojure 编译为
考虑以下假设的无意义的 ClojureScript 函数: (defn tmp [] (def p 0) (set! p (inc p)) (set! p (inc p)) (set!
我在生产构建部分遇到问题 ClojureScript quickstart .具体来说,当我运行时:java -cp "cljs.jar;src" clojure.main release.clj我得
我正在尝试使用 defmacro在 ClojureScript 中,但出现控制台错误: TypeError: 'undefined' is not an object (evaluating 'crd
我正在寻找一种在 clojureScript 中根据字符串名称调用函数的方法。 就像是: (call "my-fun" args) 欢迎任何帮助 最佳答案 一个应该有效的非常hackish的解决方案:
在 Ubuntu 10.04.1 LTS 上的 FireFox 5.0 中运行的 ClojureScript 程序中,当抛出异常时,我得到一条神秘的线。 '错误:没有为类型对象定义协议(protoco
我正在努力工作 FormidableLabs/radium · GitHub与 reagent-project/reagent · GitHub ,但我已经走到了死胡同。 我能够通过“破解”试剂功能使
是否可以将 Google Closure Templates 与 Clojurescript 一起使用? 我环顾四周,但没有找到任何有关此的信息。 最佳答案 由于 Soy 模板已编译为 JavaScr
我想从 clojurescript 设置 element.style.height 属性,但不幸的是这段代码失败了: (set! (-> (sel1 tr :.ragslide) .-style .-
我正在使用 ClojureScript 编写一些原子(编辑器)包。我遇到了依赖加载问题。 编译后的 ClojureScript 生成如下文件 (main.js): goog.addDependency
我正在为 clojurescript 库编写一些 cljs.test 测试,并且有一些我想加载的 JSON 测试数据。 我不确定我可以使用什么函数来从项目的本地文件加载数据。 我正在使用 lein-d
我有一个从 Leiningen 启动的 ClojureScript 应用程序。我如何在应用程序启动时将环境变量传递给应用程序(可能是它构建时) 最佳答案 有两个构建时间选项: 使用宏 CLJS 宏是
如何在 ClojureScript 中获取时间戳,类似于 Unix 的时间戳,即表示当前时间和日期的单个数字,作为数字。我知道: if (!Date.now) { Date.now = fun
我需要使用 ClojureScript 打开一个新选项卡。 (js/window.open "http://localhost/go/somewhere") 我收到以下错误:未捕获类型错误:windo
我已经阅读了 David Nolen 的基本 Om 教程,但我仍然对应用程序状态和组件本地状态之间的区别感到有些困惑。当引用游标时,它是否也引用了其中之一或两者? 最佳答案 据我了解: 应用程序状态是
我是一名优秀的程序员,十分优秀!