Редактировать: Если кто-то пытается создать независимые cljs/js-файлы для одного проекта: это работает именно так, как описано ниже. Вам просто нужно убедиться, что каталоги cljs содержат только необходимые файлы - это моя вина, что я непреднамеренно оставил копию другого (неиспользуемого) файла cljs в одном каталоге; хотя это и не указано, оно будет скомпилировано в требуемый файл.
Я использую cljsbuild с несколькими сборками для создания двух разных файлов cljs/js на одной странице. Между этими файлами нет никаких зависимостей, и они используют разные пространства имен. Компиляция в расширенном режиме создает два js-файла, причем один из js-файлов включает в себя весь другой - так что один файл становится ненужным.
Есть ли способ создать два полностью независимых js-файла без настройки двух разных проектов?
Часть моего проекта.clj:
:cljsbuild {:builds {:app1 {:source-paths ["src/cljs-app1"]
:compiler {:output-to "resources/public/js/app1.js"
:output-dir "resources/public/js/out-app1"
:asset-path "/js/out-app1"
:optimizations :none
:pretty-print true}}
:app2 {:source-paths ["src/cljs-app2"]
:compiler {:output-to "resources/public/js/app2.js"
:output-dir "resources/public/js/out-app2"
:asset-path "/js/out-app2"
:optimizations :none
:pretty-print true}}}}
:profiles {:dev {:cljsbuild {:builds {:app1 {:compiler {:source-map true}}
:app2 {:compiler {:source-map true}}}}}
:uberjar {:hooks [leiningen.cljsbuild minify-assets.plugin/hooks]
:env {:production true}
:aot :all
:omit-source true
:cljsbuild {:jar true
:builds {:app1 {:compiler
{:optimizations :advanced
:pretty-print false}}
:app2 {:compiler
{:optimizations :advanced
:pretty-print false}}}}}
:production {:cljsbuild {}}
}