【问题标题】:ClojureScript - How to load user.cljs file for repl sessionsClojureScript - 如何为 repl 会话加载 user.cljs 文件
【发布时间】:2019-11-27 08:47:36
【问题描述】:

我正在使用 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 错误吗?有人可以向我展示一个正常工作的示例吗?

【问题讨论】:

    标签: clojurescript read-eval-print-loop


    【解决方案1】:

    您必须以编程方式从 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 中定义的符号,如您所愿。

    【讨论】:

      【解决方案2】:

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

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2012-05-15
        • 1970-01-01
        • 1970-01-01
        • 2020-10-08
        • 2013-07-16
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多