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でビルドされますが、devguidelinesではなくtestguidelinesにアクセスできるため、replは役に立たなくなります。(ビルド用の ClojureScript REPL の起動: testguidelines) testguidelines ではなく devguidelines をリロードするように repl を構成するにはどうすればよいですか?

4

2 に答える 2

1

figwheel 内で 2 つの cljsbuild を実行することが本当に意味があるかどうかはわかりません。figwheel はコードをコンパイルしてブラウザーに提供します。提供するビルドをどのように決定するのでしょうか? figwheel:optimizations :noneには、デフォルトである を持つビルドが少なくとも 1 つ必要であることに注意してください。したがって、両方のビルドが対象となります。

figwheel がファイルを再コンパイルするたびにテストを実行しようとしているように見えます。これを行う方法は、:on-jsloadフックを使用して、作成したテスト ランナー (vr.test-runnerたとえば、 など) をトリガーすることです。

編集: 同じ REPL で 2 つのビルドを完全に実行できますswitch-to-build。figwheel の起動時に一覧表示される figwheel 関数を使用してみてください。ありがとう @ user2906524!

于 2016-01-14T14:15:56.560 に答える
1

ClojureScript REPL は、一度に 1 つの「ビルド」にしか接続できません。「ビルド」を切り替えることができる2つ以上のビルドを自動ビルドしている場合、現在のREPLを終了することでREPLに接続されます。:cljs/quit終了するには、プロンプトで入力する必要があります。

Figwheel は、REPL を別のビルドに接続するかどうかを尋ね、選択肢を一覧表示します。

于 2016-04-17T15:15:46.977 に答える