ClojureScript-如何为repl会话加载user.cljs文件

时间:2019-07-18 12:08:58

标签: clojurescript read-eval-print-loop

我正在使用node.js环境启动cljs repl。

=> clj -m cljs.main -re node

使用repl的文档说,您可以在项目的类路径根目录下放置 user.cljs 文件,该文件将自动加载到 cljs.user中的repl会话中。 名称空间。

我有一个以 user.cljs 为基础的src目录。该项目的目录结构如下所示。

xyz / deps.edn
    / src / xyz / core.cljs
          / user.cljs

ClojureScript 1.10.520版是deps.edn中的唯一依赖项。

每当我启动repl时,都会出现以下错误。

cljs.closure / compile-file(closure.clj:639)处的执行错误(IllegalArgumentException)。 /var/folders/rk/r65ng3n93l53h95nsvkl265c0000gn/T/out385499094487053918164582825852/cljs/user/user5D28A44.js不是相对路径

当我查看临时输出文件夹时,很明显没有生成 ../ cljs / user / user5D28A44.js

这是cljs错误吗?有人可以给我看一个可以正常工作的例子吗?

2 个答案:

答案 0 :(得分:0)

您必须以编程方式从clojure显式启动ClojureScript repl,命令行启动快捷键不适用于加载 user.cljs

=> clj
Clojure 1.10.1
user=> (require '[cljs.repl :as repl])
user=> (require '[cljs.repl.node :as node])
user=> (def env (node/repl-env))
user=> (repl/repl env)
cljs.user=> working?
"Yes."
cljs.user=> ...

工作正常吗?在 user.cljs 中定义的符号,可以按预期使用。

答案 1 :(得分:0)

这是一个已知问题。参见:CLJS-2917

您可以通过-d指定输出目录来解决它。