lein-cljsbuild와 함께있는 JS 라이브러리를 컴파일하여 ClojureScript 코드 기반에 통합하려고합니다. 먼저 각 파일의 상단에 goog.provide를 추가했으며 파일은 Java와 마찬가지로 네임 스페이스에 따라 디렉토리 트리에 계층 적으로 구성되어 있습니다. 그것은 네임 스페이스입니다. abc는 src-js/libs/a/b/c.js에 있습니다.ClojureScript에서 Cljsbuild를 사용하여 외부 JS 파일 컴파일
src-js/libs에있는 프로젝트의 루트 디렉토리에 JS 파일을 넣었습니다. lein-cljsbuild 옵션 :
{:id "prod",
:source-paths ["src-cljs" "src-js"]
:compiler
{:pretty-print false,
:libs ["libs/"]
:output-to "resources/public/js/compiled-app.js",
:optimizations :simple}}
아무 것도 컴파일 된 응용 프로그램 파일로 컴파일되지 않습니다. 뭐가 문제 야?
나는 리소스/closure-js/libs에 성공하지 못했습니다.
저는 lein-cljsbuild 0.3.0을 사용하고 있습니다.
src-js (빼기, 슬래시!)가 클래스 경로에 없으므로 추가해야합니다. 특정 라이브러리를 지정할 필요가 없습니다. 디렉토리를 지정할 수는 있지만 작동하지만 버그가 있습니다. 계층 구조의 파일을 자동으로 다시 컴파일하지 않습니다. cljsbuild의 버그 추적기를보십시오. 마지막으로 내 파일은 컴파일되지 않았기 때문에 a) cljs 파일에 필요하지 않았기 때문입니다. b) 마이너스/하이픈 기호가 포함 된 파일이있는 버그가있었습니다. 버그 추적기도 참조하십시오. – z1naOK9nu8iY5A
실제로 JS 파일을 컴파일하기 위해 전체 디렉토리를 지정할 수 있습니다. 언급 한대로 디렉토리는 : source-path가 아닌 : lib 키워드로 지정해야합니다. 내 예제에서는 : libs "src-js/libs"있어야하며 다음 작동합니다. – z1naOK9nu8iY5A