practice / blog

For personal blogging
1 stars 0 forks source link

cljsbuild 할 때 ArityException #19

Open practice opened 9 years ago

practice commented 9 years ago
$ lein cljsbuild once
Compiling ClojureScript...
Compiling "resources/public/js/app.js" from ("src/cljs" "env/dev/cljs")...
Compiling "resources/public/js/app.js" failed.
clojure.lang.ArityException: Wrong number of args (2) passed to: reader/read
        at clojure.lang.AFn.throwArity(AFn.java:429)
        at clojure.lang.AFn.invoke(AFn.java:36)
        at cljs.analyzer$forms_seq_STAR_$forms_seq___1998$fn__1999$fn__2000.invoke(analyzer.cljc:2638)
        at cljs.analyzer$forms_seq_STAR_$forms_seq___1998$fn__1999.invoke(analyzer.cljc:2631)

cljsbuild 의 문제가 아니라 기존 웹 개발시 사용되었던 ring 또는 다른 라이브러리에 의해 낮은 버전의 org/clojure/tools.reader 가 사용되었기 때문이다.

강제로 의존성을 추가하면 된다.

[org.clojure/tools.reader "0.10.0"]

구글 검색을 통해 https://github.com/JulianBirch/cljs-ajax/issues/85 에서 힌트를 얻었다.

그런데 이런 식의 의존성 문제는 일반적인 해결 방법이 없어 보이는 것이 더 큰 문제인 듯.