编辑:如果有人试图为一个项目构建独立的 cljs/js 文件:它的工作方式与下面描述的完全一样。您只需要确保 cljs 目录仅包含所需的文件 - 无意中将另一个(未使用的)cljs 文件的副本留在一个目录中是我的错;虽然没有被引用,但这将被编译成想要的文件。
我将 cljsbuild 与多个构建一起使用,以在同一页面上生成两个不同的 cljs/js 文件。这些文件之间没有依赖关系,它们使用不同的命名空间。在高级模式下编译会构建两个 js 文件,其中一个 js 文件包含另一个文件 - 这样一个文件就变得不必要了。
有没有办法在不设置两个不同项目的情况下生成两个完全独立的 js 文件?
我的 project.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 {}}
}