Figwheel多个构建(dev和test)将在repl测试中重新加载而不是dev

时间:2016-01-10 11:06:27

标签: clojurescript reagent figwheel

我们有一个项目和2个版本:

  :cljsbuild {:builds
          [

           {:id "devguidelines"
            :source-paths ["src"]

            :figwheel {:on-jsload "vr.guidelines/on-js-reload"}

            :compiler {:main vr.guidelines
                       :asset-path "js/compiled/out"
                       :output-to "resources/public/js/compiled/vr.guidelines.js"
                       :output-dir "resources/public/js/compiled/out"
                       :source-map-timestamp true}}

           {:id "testguidelines"
            :source-paths ["src" "test"]
            :compiler {:output-to "resources/public/js/test/test.guidelines.js"
                       :output-dir "resources/public/js/test/out"
                       :optimizations :none
                       :main vr.test-runner
                       :asset-path "js/test/out"
                       :source-map true
                       ;; :source-map-timestamp true
                       :cache-analysis true }}

当我开始时:

rlwrap lein figwheel devguidelines testguidelines

它们都是在repl中构建的,我可以访问testguidelines而不是devguidelines,这使得repl无用。 (为构建启动ClojureScript REPL:testguidelines)如何配置repl以重新加载devguidelines而不是testguidelines?

2 个答案:

答案 0 :(得分:1)

我不确定在figwheel中运行两个cljsbuild是否真的有意义; figwheel编译代码并将其提供给浏览器 - 它将如何决定服务的构建?请注意,figwheel至少需要一个具有:optimizations :none的构建,这是默认构建 - 因此两个构建都符合条件。

在我看来,只要figwheel重新编译文件,你就会尝试运行测试。执行此操作的方法是使用:on-jsload挂钩来触发您编写的测试运行器(例如,您的vr.test-runner)。

编辑:你完全可以在同一个REPL中运行两个版本,尝试使用启动figwheel时列出的switch-to-build图形函数。谢谢@ user2906524!

答案 1 :(得分:1)

ClojureScript REPL一次只能连接一个“构建”。如果您要自动构建两个或多个构建,则可以切换“构建”,通过退出当前REPL来连接REPL。要退出,您必须在提示符下输入:cljs/quit

然后,Figwheel将询问您是否要将REPL连接到其他版本并列出选项。