【问题标题】:How do I add a library to LightTable so that when I use instarepl it will always have said library?如何将一个库添加到 LightTable,以便在我使用 instarepl 时它总是说库?
【发布时间】:2014-10-13 17:12:07
【问题描述】:

我想将某些库依赖项作为一个整体添加到 LightTable 中,这样当我在学习新东西时,我不必创建一个整体的新项目。

假设我希望始终能够访问这些库:math.combinatorics 和 math.numeric-tower。

Lighttable 似乎从 leinigen 调用了一个 repl,所以我真的需要在那里添加一些东西吗?

https://github.com/LightTable/LightTable/blob/master/project.clj

【问题讨论】:

    标签: clojure leiningen lighttable


    【解决方案1】:

    它将调用 Leiningen 的 repl。与其将依赖项添加到 LightTable,不如将它们添加到 Leiningen Profile (~/.lein/profiles.clj) 该文件可能与您的依赖项类似:

    {:user {:dependencies [[math.combinatorics "x.x.x"]
                           [math.numeric-tower "x.x.x"]]}}
    

    通常这不是一个好主意。这将是一个全球性的事情,并且可能会在未来给您带来问题。如果您创建一个应用程序,您可能会发现这两个库在它们不用于其他人或在不同的计算机上时可用。

    更好的选择是使用 Leiningen 创建一个新项目。然后,您可以编辑 project.clj 文件,使其看起来像这样

    (defproject math-thing "0.1.0-SNAPSHOT"
       :description "FIXME: write description"
       :dependencies [[org.clojure/clojure "1.6.0"]
                      [math.combinatorics  "x.x.x"]
                      [math.numeric-tower  "x.x.x"]])
    

    然后在编辑您的 clj 文件时,LightTable 使用您的 project.clj 文件来启动 instrepl,并将解决任何需要的依赖项。

    【讨论】:

    • 看起来您的意思是“通常这不是一个非常好的主意”?
    • @firthh 我似乎无法找到和编辑 (~/.lein/profiles.clj) 当我寻找这个目录时,我找到了它,但是 - 目前 - 没有 profile.clj文件在那里。我已经使用自制软件安装了 lein。
    • 我想补充一点,我使用的是 Clojure 1.6.0 和 Leiningen 2.4.1。
    • 是的@David,这就是我的意思。 @dmbennett,如果该文件不存在,您应该只能创建该文件。您最好使用 Leiningen 为您创建一个新项目并在其中添加依赖项。 lein new 命令让创建新项目变得非常容易
    【解决方案2】:

    使用 leiningen 配置文件,例如~/.lein/profiles.clj 并定义一个 :injections [ ... ] 节点,该节点执行 (require '[ ]) 和 import、refer-clojure 和您拥有的其他项目。我通常更喜欢在我的开发配置文件中至少有 Alembic(包装 Maven/Sonatype),这样我就可以下载、安装在 maven 中,然后使用 distill* 周围的宏/函数包装器一次性重新加载项目以防止由于用户空间中包含的库太多,加载时间长。几乎这是我通常希望在任何 REPL 或 LT InstaRepl 中出现的唯一功能,我将开发和调试 sn-ps 放在项目 ./dev/user.clj 中,以保持大部分杂乱的东西项目特定。

    【讨论】:

      猜你喜欢
      • 2018-07-27
      • 2012-06-01
      • 1970-01-01
      • 2010-11-07
      • 1970-01-01
      • 1970-01-01
      • 2011-03-28
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多