49 lines
2.5 KiB
Clojure
49 lines
2.5 KiB
Clojure
;; Two builds and no more:
|
|
;;
|
|
;; app the tool. Output goes straight into the Django staticfiles tree, so
|
|
;; `python manage.py runserver` and `shadow-cljs watch app` are the whole
|
|
;; dev loop with nothing copying files between them.
|
|
;; test :node-test, because everything below `ui/` and `fx/` is pure and has
|
|
;; no business needing a browser to be asserted about. The canvas-facing
|
|
;; parts get asserted through domain/raster's byte buffer instead, which
|
|
;; is what the JS selftest already did.
|
|
{:source-paths ["src" "test"]
|
|
|
|
:dependencies [[reagent "1.2.0"]
|
|
[re-frame "1.4.3"]
|
|
;; The document's wire format. JSON would do for the shape of tier
|
|
;; 1 but not for its VALUES: channel keys are a map by FRAME
|
|
;; NUMBER and every id is a keyword, and JSON has neither, so a
|
|
;; save would quietly turn `{0 v}` into `{"0" v}` and `:mouth`
|
|
;; into "mouth". Transit is JSON on the wire, so Django stores a
|
|
;; leaf in a JSONField and the admin can still read it.
|
|
[com.cognitect/transit-cljs "0.8.280"]]
|
|
|
|
;; THERE IS NO :dev-http, since step 9. Django serves the page — one template,
|
|
;; out of `clips/templates/` — and shadow-cljs only builds into the staticfiles
|
|
;; tree, which is what `:output-dir` below already did. So the dev loop is two
|
|
;; processes that do not talk to each other:
|
|
;;
|
|
;; mise exec -- python manage.py runserver 8778 (from the repo root)
|
|
;; cd frontend && mise exec -- npx shadow-cljs watch app
|
|
;;
|
|
;; What went away with the key was a set of problems rather than a feature. The
|
|
;; two roots it needed — `public` for the host page and `..` for the repo root, IN
|
|
;; THAT ORDER, because the root has the old tool's index.html and serving that one
|
|
;; instead would look like the port having regressed to a suspiciously complete
|
|
;; tool — were a way of reaching frames/, audio.wav and manifest.json off the
|
|
;; filesystem. Those are tier 3, and tier 3 is now the backend's, by hash.
|
|
;;
|
|
;; 8778 is still deliberately not 8777, which is still the old JS tool's under
|
|
;; `python3 serve.py`. The two are meant to run side by side.
|
|
|
|
:builds
|
|
{:app {:target :browser
|
|
:output-dir "../static/arthur/js"
|
|
:asset-path "/static/arthur/js"
|
|
:compiler-options {:source-map true}
|
|
:modules {:main {:init-fn arthur.core/init}}}
|
|
|
|
:test {:target :node-test
|
|
:output-to "out/node-tests.js"
|
|
:ns-regexp "-test$"}}}
|