2013-10-24 5 views
3

.cljs 파일에 나는이 같은 파일을 정의하는 경우 :참조 외부 clojurescript 네임 스페이스

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

코드를 사용해 본 결과 현재 구성에서 정상적으로 작동합니다. 질문과 비슷한 다른 문제가 있었는데이 경우 main.cljs을 컴파일하고로드하기 전에 secondfile.cljs을 brepl에로드하고로드하려고 시도 할 수 있습니다. 이 경우에는이 트릭이 제대로 작동합니다. 은 어쩌면 문제는 secondfile.cljs (그리고 def my-var)가 cljsbuild 컴파일하기 전에 존재하지 않았다, 그래서이 my-var을 사용하려고 할 때이 코드를 사용할 수 없습니다

나는 이것이 당신에게
후안

도움이되기를 바랍니다
+2

이것은 그 것이다. brepl을 사용하여 컴파일해야하는 것은 약간 번거롭지만 작동합니다. 작동하는 또 다른 옵션은 사전 순입니다. 컴파일러는 order를 보장하지 않는 file.listFiles()를 사용하는 file-seq를 사용하는 것으로 보이지만 적어도 대부분의 경우 시간이 많이 걸리고 더 쉽습니다 (결국 결국 중요하지 않습니다. 경고를 없애다). –

관련 문제