2016-12-05 65 views
0
  • Clojure的版本:1.8.0
  • leiningen版本:2.7.1
  • JDK版本:1.8.0_101

當我需要一個庫,說reagent(在項目的依賴增加了),在雷音REPL:不能要求雷音REPL第三方庫

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庫。

+3

試劑主要是ClojureScript庫。核心命名空間只有一個實用程序宏。你是從ClojureScript REPL運行的嗎? –

+0

您可以詳細說明我在使用r時的含義......您如何使用它?只要輸入'r'並按下REPL中的回車鍵就會導致這個錯誤,因爲'r'不是一個符號。你需要引用一個符號,例如:'(r/my-function ...'所以,沒有進一步的信息很難說你的問題是什麼。 – Josh

+0

@MichielBorkent是的,這是一種尷尬,我可能會忽略它的差異clojure REPL和clojurescript REPL .. – minddy

回答

1

可能您正在嘗試使用ClojureScript庫:Clojure REPL中的試劑。找到導致錯誤的原因並不是很有用,因爲Clojure和ClojureScript分別假設在非常不同的環境中運行,分別是JVM和JavaScript。但是相同的嘗試會在ClojureScript上下文中成功。

作爲一個測試,創建一個基於figwheel模板的ClojureScript項目。

lein new figwheel rtest 
cd rtest 

添加攝政依賴於project.clj

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

運行時將自動連接到瀏覽器REPL項目

rlwrap lein figwheel 

。否則瀏覽到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] }"] 
+0

哦,是的,它的工作原理我沒有清楚地瞭解clojure和clojurescript的運行環境的區別。 – minddy