Clojurescript 将多个cljs文件编译为独立的js文件

Clojurescript 将多个cljs文件编译为独立的js文件,clojurescript,cljsbuild,Clojurescript,Cljsbuild,编辑:如果有人试图为一个项目构建独立的cljs/js文件:它的工作方式完全如下所述。您只需确保cljs目录只包含所需的文件-我的错误是无意中在一个目录中留下了另一个(未使用)cljs文件的副本;尽管未被引用,但它将被编译成想要的文件 我将cljsbuild与多个构建结合使用,在同一页面上生成两个不同的cljs/js文件。这些文件之间没有依赖关系,它们使用不同的名称空间。在高级模式下编译会生成两个js文件,其中一个js文件包含整个其他js文件,因此一个文件变得不必要 有没有一种方法可以在不设置两个

编辑:如果有人试图为一个项目构建独立的cljs/js文件:它的工作方式完全如下所述。您只需确保cljs目录只包含所需的文件-我的错误是无意中在一个目录中留下了另一个(未使用)cljs文件的副本;尽管未被引用,但它将被编译成想要的文件

我将cljsbuild与多个构建结合使用,在同一页面上生成两个不同的cljs/js文件。这些文件之间没有依赖关系,它们使用不同的名称空间。在高级模式下编译会生成两个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 {}}
       }

发现了一些可能有用的东西当前编译每个版本时使用了源路径的组合列表,这可能会导致结果js文件中出现意外的包含/泄漏。解决方法是为每个构建分别运行cljsbuild:

lein cljsbuild once app1
lein cljsbuild once app2
这可能会有帮助&