shadow-cljs ホット リロードを機能させようとしましたが、うまくいきませんでした。project.clj ファイルで複数の設定を試しましたが、どれも機能しませんでした。これは私のproject.cljがどのように見えるかです:
:shadow-cljs {:nrepl {:port 8777}
:builds {:app {:target :browser
:output-dir "resources/public/js/compiled"
:asset-path "/js/compiled"
:modules {:app {:init-fn my-app.core/init
:preloads [devtools.preload]}}
:devtools {:http-root "resources/public"
:http-port 8080
:http-handler my-app.handler/dev-handler
}}}}
:aliases {"watch" ["with-profile" "dev" "do"
["shadow" "watch" "app"]]}
:profiles
{:dev
{:dependencies [[binaryage/devtools "1.0.2"]]
:source-paths ["dev"]} ;; <- this is the default from the template pointing to "dev", I've tried chaning it multiple times.
}
実行すると、「アプリ」ビルドを実行する必要があるのは実行中lein watch
だけであることがわかります。shadow-cljs watch app
これは、私の dev-handler がどのように見えるかです ( で参照:http-handler
):
(def dev-handler (-> api-routes
wrap-params
wrap-json-response
wrap-keyword-params
wrap-json-params
wrap-multipart-params
wrap-reload
(wrap-resource "public")
(utils/cors-wrapper utils/cors-policy)
(utils/wrap-content-type-security)
(wrap-defaults (assoc-in site-defaults [:security :anti-forgery] false))))
:dev プロファイルの source-paths を に変更しようとしましたが、すべて["src"]
の内部フォルダーを含めようとして["src/clj" "src/cljs" "src/cljc"]
も成功しませんでした。私はlein new re-frame
何も変更せずに新しいアプリをゼロから作成しようとしました. 、私は localhost:9630 に移動しました。これにより、ビルドを一覧表示する shadow-cljs ダッシュボードが表示され、[強制コンパイル] ボタンをクリックして、アプリのページに clojurescript アニメーションが表示されますが、再レンダリング/再読み込みは行われません。shadow-cljs のコンパイルが終了すると、コンパイルされたファイルが 0 個あることに気付きました。別の場所から source-paths 構成を取得していますか? 私がいる時はこんな感じです」
編集:おそらく、MobaXterm内でWSL2からxfceターミナルとemacsを使用してubuntuを実行していると言う価値がありますが、ホットリロードしないコード/アプリと関係があるのでしょうか?