Ich bin neu in Clojure und ich versuche, eine Entwicklungsumgebung einzurichten, wo ich dynamisch meine Web-Projektdateien Ring-Server laden kann mit und cljsbuildLangsames Laden von cljsbuild in Clojure
i in der folgenden Ausschnitt haben meine Projektdatei
:ring {
:handler cjohansen-no.web/app
;;:auto-refresh true
;;:auto-reload? true
;;:reload-paths ["resources","src"]
;;:refresh-paths ["resources","src"]
}
:aliases {
"start-server" ["ring" "server-headless"]
"build-site" ["run" "-m" "cjohansen-no.web/export"]
"build-html" ["run" "-m" "cjohansen-no.web/export-pages"]
"build-js" ["cljsbuild" "auto" "dev"]
"build-web" ["do" ["build-site"] ["build-js"]]
"build-dev" ["pdo" ["build-web"] ["start-server"] ["auto" "build-html"]]
}
:source-paths ["src"]
:test-paths ["test/cjohansen_no" "test/cljs" "spec"]
:clean-targets [:target-path "./build/js/out"
:compile-path "classes"
:output-paths "./build/js/output"
"build/js/main.js.map"
]
:main cjohansen-no.web
:clean-non-project-classes true
:figwheel {
;;:server-port 3000
:css-dirs ["resources/public/css"]
:reload-clj-files {:clj true :cljc false}
:ring-handler cjohansen-no.web/app
:repl false
}
:cljsbuild {
:builds [
{
;; :notify-command ["growlnotify" "-m"]
:id "dev"
:source-paths ["src/cljs"]
:figwheel {
:websocket-host :js-client-host
:autoload false
:reload-dependents true
:debug true
}
:compiler {
:main scripts.core
:output-to "resources/public/js/main.js"
:output-dir "resources/public/js/out"
:optimizations :none
:source-map true
:source-map-timestamp true
:recompile-dependents false
:pretty-print true
:asset-path "js/out"
;;:notify-command ["bin/phantomjs" "bin/speclj.js" "resources/public/js/main.js"]
}
},
....
}
:profiles {
:dev {
:dependencies [
;;[figwheel "0.5.4-7"]
]
:plugins [
[lein-pdo "0.1.1"]
[lein-ring "0.9.7"]
[lein-cljsbuild "1.1.3"]
[lein-figwheel "0.5.4-7"]
]
}
ich benutze diese Schnipsel meinem Server
(def app (->
(stasis/serve-pages get-pages)
(optimus/wrap get-assets optimizations/all serve-live-assets)
;;(wrap-cljsbuild "/js/" cljsbuild)
wrap-content-type
;; wrap-reload
wrap-utf-8))
ich lade mein Vermögen mit Optimus
laufen(defn get-assets []
(concat (assets/load-bundle "public" "styles.css" [#"css/.+\.css$"])
(assets/load-assets "public" [#"img/.*" "/questions.json"])
(assets/load-bundle "public" "main.js" [#"js/.+\.js"])
))
wenn ich lein with-profile dev pdf start-server, cljsbuild auto
laufen und meine Website bringen die js Dateien und ihr abhängigen Menschen durch das „dev“ kompilierten Build dauert ewig Laden abzuschließen. Warum ist der Ringserver so langsam?
Sollte ich die Build-Dateien auf diese Weise referenzieren? sollte ich es in eine Datei bündeln?
Das verwendete Profil ist für Entwicklungszwecke.
Wie lange ist für immer? –
mindestens 10 Sekunden – Kendall
vorausgesetzt, Sie haben keine super fasr Hardware, 10s ist nicht unvernünftig für eine Clojurescript kalte Kompilierzeit. Das ist auch der Grund, warum es so wichtig für Sie ist inkrementelle Compilierung –