如果在.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/

10-10 06:26