我正在使用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错误吗?有人可以给我看一个可以正常工作的例子吗?
答案 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
指定输出目录来解决它。