情况

我正在使用 clojure + figwheel + devcards。
https://www.youtube.com/watch?v=G7Z_g2fnEDg

一切都很好,除了以下问题:

  • 我可以为我的应用程序的 UI 组件制作原型(prototype)。但是,我不希望我的完整应用程序在卡片中。

    所以特别是,我想要以下内容:

  • localhost:8000/cards.html localhost:8000/app.html
    问题:

    我如何获得此设置?我读过的几乎所有内容都是关于如何使用 devcards 而不是如何设置单独的 devcards 与主应用程序的区别。

    谢谢!

    最佳答案

    这几乎是 devcards 模板(例如 lein new devcards my-app )的默认设置。

    在您的 project.clj 中有多个构建。一个用于开发卡(注意不同的路径和 figwheel 配置)。 dev 几乎是默认值。

    (This code is from the template) :

     ; ...
     :builds [{:id "devcards"
               :source-paths ["src"]
               :figwheel { :devcards true  ;; <- note this
                          ;; :open-urls will pop open your application
                          ;; in the default browser once Figwheel has
                          ;; started and complied your application.
                          ;; Comment this out once it no longer serves you.
                          :open-urls ["http://localhost:3449/cards.html"]}
               :compiler { :main       "xxx.core"
                          :asset-path "js/compiled/devcards_out"
                          :output-to  "resources/public/js/compiled/xxx_devcards.js"
                          :output-dir "resources/public/js/compiled/devcards_out"
                          :source-map-timestamp true }}
              {:id "dev"
               :source-paths ["src"]
               :figwheel true
               :compiler {:main       "xxx.core"
                          :asset-path "js/compiled/out"
                          :output-to  "resources/public/js/compiled/xxx.js"
                          :output-dir "resources/public/js/compiled/out"
                          :source-map-timestamp true }}
               ;...
    

    现在您需要两个不同的 HTML 文件。您已经在使用( cards.html )和您的 app.html (或模板正在使用的内容: index.html )。他们加载:
    <script src="/js/compiled/xxx_devcards.js" type="text/javascript"></script>
    

    另一个:
    <script src="/js/compiled/xxx.js" type="text/javascript"></script>
    

    请注意,这是 :output-to 中的两个。

    使用 lein figwheel dev devcards 运行此设置。在浏览器中打开索引和卡片。享受。

    在实践中,将它分开可能会更好。您可以通过为您的 :main 使用不同的 ns - 或者您可以使用多个 :source-paths 来做到这一点。

    关于clojure:devcards:分离主应用程序,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/40670145/

    10-12 12:29