namespaces - 引用外部 clojurescript 命名空间

标签 namespaces clojurescript cljsbuild

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

相关文章:

c# - 在单个项目中使用不同的命名空间

google-chrome - Puppeteer 不是容器中的 headless Chrome

leiningen - 在 ClojureScript 中使用 Cljsbuild 编译外部 JS 文件

php - 类不继承 - 找不到类

php - 在 PHP 中从父类(super class)获取子类命名空间

clojure - 如何在 clojurescript 中使用 clojure.string/join

clojurescript - 无法通过优化构建 ClojureScript 快速入门

leiningen - Clojurescript 库 - goog.require 找不到

php - 在 fatfree 框架中实现命名空间