Ссылка на внешние пространства имен clojurescript
Если в файле.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")
Я получаю "Реферальный var project.secondfile/my-var не существует в src-cljs/main.cljs". Тем не менее, он работает нормально в браузере, так как оба компилируются (и с компиляциями: пробелы они могут ссылаться друг на друга просто отлично). Но очевидно, что в bREPL это не работает, так как они не ссылаются друг на друга.
Это что-то неизбежное или я делаю что-то не так?
Спасибо!
1 ответ
Я попробовал ваш код и отлично работает в моей текущей конфигурации. У меня были другие проблемы, похожие на ваш вопрос, и в этих случаях вы можете попробовать скомпилировать и загрузить secondfile.cljs
в Brepl, прежде чем пытаться скомпилировать и загрузить main.cljs
, В этом случае этот трюк работает отлично. Может быть, проблема в том, что secondfile.cljs
(и def my-var
) не существовало до компиляции cljsbuild, поэтому, когда вы пытались использовать это my-var
этот код не был доступен
Я надеюсь, это поможет вам
Juan