1

我们有一个项目和 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?

4

2 回答 2

1

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

在我看来,每当 figwheel 重新编译文件时,您都在尝试运行测试。这样做的方法是使用:on-jsload钩子来触发您编写的测试运行程序(例如您vr.test-runner的 .

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

于 2016-01-14T14:15:56.560 回答
1

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

Figwheel 然后会询问您是否要将 REPL 连接到不同的构建,并会列出选择。

于 2016-04-17T15:15:46.977 回答