如果在.cljs文件中,则定义如下文件:
main.cljs
(ns project.main
(:use [project.secondfile :only [my-var]]))
(js/alert my-var)
secondfile.cljs
(ns project.secondfile)
(def my-var "Hi")
我得到一个“ Referred var project.secondfile / my-var在src-cljs / main.cljs中不存在”。但是,它在浏览器中都可以正常工作,因为它们都是经过编译的(而对于compiles:whitespace,它们可以很好地相互引用)。但是很明显,由于bREPL彼此之间没有相互引用,因此在bREPL中不起作用。
这是不可避免的事还是我做错了事?
谢谢!
最佳答案
我已经尝试过您的代码,并且在当前配置下工作正常。
我遇到了其他与您的问题类似的问题,在这些情况下,可以尝试将secondfile.cljs
编译并加载到brepl中,然后再尝试编译和加载main.cljs
。在这种情况下,此技巧很好用。
也许问题是在cljsbuild编译之前secondfile.cljs
(和def my-var
)不存在,所以当您尝试使用此my-var
时,此代码不可用
我希望这可以帮助你
胡安
关于namespaces - 引用外部clojurescript命名空间,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/19568745/