引用外部clojurescript命名空间

时间:2013-10-24 14:28:55

标签: namespaces clojurescript cljsbuild

如果在.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中不存在”。但是,它在浏览器中正常工作,因为两者都被编译(并且使用编译:空格可以很好地引用彼此。)但显然,它在bREPL中不起作用,因为它们并不是指彼此。

这是不可避免的事情还是我做错了什么?

谢谢!

1 个答案:

答案 0 :(得分:1)

我已经尝试过您的代码并且在我当前的配置中运行良好。 我遇到了与您的问题类似的其他问题,在这些情况下,您可以尝试编译并将secondfile.cljs加载到brepl中,然后再尝试编译并加载main.cljs。在这种情况下,这个技巧很好。 也许问题是cljsbuild编译之前secondfile.cljs(和def my-var)不存在,所以当你尝试使用这个my-var时,这段代码不可用

我希望这可以帮助你 涓