lein repl中不能要求第三方库

时间:2016-12-05 10:40:24

标签: clojure leiningen

  • clojure版本:1.8.0
  • leiningen版本:2.7.1
  • jdk版本:1.8.0_101

当我需要一个库时,在lein repl中说reagent(已添加项目依赖项):

user=> (require '[reagent.core :as r])
nil

输出为零,我认为这意味着成功。但是当我使用r时,说(r/atom 3),repl抛出一个错误说:

CompilerException java.lang.RuntimeException: Unable to resolve symbol: r in
this context, compiling:  (/private/var/folders/_y/n3ym4ftj2ld9tl471g_kcv_00000gn/T
/form-init1002540725014588615.clj:1:4923) 

这看起来很奇怪。 有人有想法吗?

顺便说一句,我可以要求java和clojure库。

1 个答案:

答案 0 :(得分:1)

可能您正在尝试使用ClojureScript库:Clojure REPL中的试剂。找出导致错误的原因并不是很有用,因为Clojure和ClojureScript分别假设在非常不同的环境(JVM和JavaScript)中运行。但是同样的尝试将在ClojureScript上下文中成功。

作为测试,基于figwheel模板创建一个ClojureScript项目。

lein new figwheel rtest
cd rtest

在project.clj中添加regent依赖项

:dependencies [[org.clojure/clojure "1.8.0"]
               [reagent "0.6.0"] ; only add this line

运行项目

rlwrap lein figwheel

您将自动连接到浏览器repl。否则,请浏览到http://localhost:3449/index.html以建立连接。

现在你可以重试你的所作所为。

cljs.user=> (require '[reagent.core :as r])
nil
cljs.user=> (type r/render-component)
#object[Function "function Function() { [native code] }"]