【问题标题】:Where should the file user.clj go?文件 user.clj 应该放在哪里?
【发布时间】:2016-03-26 12:17:28
【问题描述】:

我正在尝试设置 proto-repl atom-editor 包,显然它需要一个文件 user.clj 存在于某处 - 我猜这是一些 leiningen 的 init 文件。

我应该在哪里创建这个文件?

【问题讨论】:

  • user.clj,如果存在,定义默认的 clojure 命名空间。 Leiningen 的初始化文件是 project.clj。
  • 是什么让你认为 user.clj 是必要的?
  • proto repl 上的一个严重错误抱怨它不存在。

标签: clojure leiningen atom-editor proto-repl


【解决方案1】:

如果找到,Clojure 将从您的类路径中加载文件 user.clj。在默认的 leinengen 项目中,src/ 将位于类路径中,因此如果您创建 src/user.clj,则该文件的内容将加载到 user 命名空间的上下文中。

user 是 clojure repl 的默认命名空间,但一些 leiningen 项目会覆盖它。为了访问user.clj 中的定义,您需要将user 拉入范围(使用requireuse)或确保user 是您的起始命名空间。

【讨论】:

  • 我想知道为什么这被否决了。 user.clj 是基于类路径加载的,找到的第一个 user.clj 将被加载以定义 user 命名空间。这里的信息可能不足以解释 proto-repl,但 user.clj 是 clojure 功能,而不是 leiningen 或 proto-repl 功能。
  • 因为是项目中真正的clj文件,而不是leiningen的user.clj...:D
  • user.clj 是一个真实的文件,它是由 clojure 加载的,而不是 leinengen 或其他任何东西
【解决方案2】:

有关如何设置 user.clj 的示例,请参阅 Proto REPL 演示项目 https://github.com/jasongilman/proto-repl-demo/blob/master/dev/user.clj 您还应该在 project.clj https://github.com/jasongilman/proto-repl-demo/blob/master/project.clj 中添加对 clojure.tools.namespace 的依赖项

我昨晚刚刚对 Proto REPL 进行了一些更改以改进该区域,但您仍然会从一个设置中受益。

【讨论】:

    【解决方案3】:

    根据 proto-repl 页面,在 REPL(reset 函数)中重新加载代码时,它可能会使用来自 user 命名空间的一些函数,但它不应该是必需的。

    您可能想查看proto-repl demo project 以了解更高级的设置。

    【讨论】:

      猜你喜欢
      • 2018-01-18
      • 2012-02-15
      • 2010-12-01
      • 2018-09-28
      • 2019-10-04
      • 2018-10-28
      • 1970-01-01
      • 1970-01-01
      • 2014-05-27
      相关资源
      最近更新 更多