fix: auto-install node_modules in dev-all and dev-replicant/squint

Add `ensure-npm` task that runs `npm install` in dev/replicant and
dev/squint when their node_modules directories are missing. Wire it
as a dependency for dev-replicant, dev-squint, and dev-all.
This commit is contained in:
Florian Schroedl
2026-03-05 09:27:31 +01:00
parent 1b4929224b
commit d7ca825566

16
bb.edn
View File

@@ -52,6 +52,16 @@
(when (pos? (+ fail error)) (when (pos? (+ fail error))
(System/exit 1)))} (System/exit 1)))}
ensure-npm
{:doc "Install node_modules in dev/replicant and dev/squint if missing"
:task (do
(when-not (.exists (clojure.java.io/file "dev/replicant/node_modules"))
(println "Installing node_modules in dev/replicant...")
(shell {:dir "dev/replicant"} "npm install"))
(when-not (.exists (clojure.java.io/file "dev/squint/node_modules"))
(println "Installing node_modules in dev/squint...")
(shell {:dir "dev/squint"} "npm install")))}
dev-hiccup dev-hiccup
{:doc "Start hiccup dev server on port 3003" {:doc "Start hiccup dev server on port 3003"
:depends [build-theme] :depends [build-theme]
@@ -61,12 +71,12 @@
dev-replicant dev-replicant
{:doc "Start replicant dev server on port 3001" {:doc "Start replicant dev server on port 3001"
:depends [build-theme] :depends [build-theme ensure-npm]
:task (shell {:dir "dev/replicant"} "npx shadow-cljs watch app")} :task (shell {:dir "dev/replicant"} "npx shadow-cljs watch app")}
dev-squint dev-squint
{:doc "Start squint dev server on port 3002" {:doc "Start squint dev server on port 3002"
:depends [build-theme] :depends [build-theme ensure-npm]
:task (shell {:dir "dev/squint"} "npm run dev")} :task (shell {:dir "dev/squint"} "npm run dev")}
dev dev
@@ -83,7 +93,7 @@
dev-all dev-all
{:doc "Start all dev servers in tmux panes" {:doc "Start all dev servers in tmux panes"
:depends [build-theme] :depends [build-theme ensure-npm]
:task (let [session "ui-dev"] :task (let [session "ui-dev"]
(shell {:continue true} "tmux kill-session -t" session) (shell {:continue true} "tmux kill-session -t" session)
(shell "tmux new-session -d -s" session "bb dev-hiccup") (shell "tmux new-session -d -s" session "bb dev-hiccup")