【问题标题】:Compile multiple cljs-files to independent js-files将多个cljs-files编译成独立的js-files
【发布时间】:2015-04-04 10:22:03
【问题描述】:

编辑:如果有人试图为一个项目构建独立的 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 {}}
       }

【问题讨论】:

标签: clojurescript cljsbuild


【解决方案1】:

找到了一些可能有帮助的东西https://github.com/thheller/shadow-build

【讨论】:

    【解决方案2】:

    目前在编译每个构建时都会使用源路径的组合列表,这可能会导致生成的 js 文件中出现令人惊讶的包含/泄漏。一种解决方法是为每个构建单独运行 cljsbuild:

    lein cljsbuild once app1
    lein cljsbuild once app2
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-07-17
      • 1970-01-01
      • 1970-01-01
      • 2015-11-15
      • 1970-01-01
      • 2012-12-15
      • 2012-12-01
      • 1970-01-01
      相关资源
      最近更新 更多