情况
我正在使用 clojure + figwheel + devcards。
https://www.youtube.com/watch?v=G7Z_g2fnEDg
一切都很好,除了以下问题:
所以特别是,我想要以下内容:
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/