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