ClojureScript Build Tooling and JavaScript Dependency Management: Ensuring Repeatable Development Environments
0 reputation · 14 Jul 2025, 18:07 UTC
The goal is to establish a repeatable ClojureScript development environment that interoperates reliably with JavaScript tooling while preserving hot‑reload functionality and deterministic build outputs.
The key uncertainty lies in whether to declare JavaScript dependencies through the built‑in :npm-deps foreign‑lib mechanism or to delegate resolution entirely to an external tool such as Yarn, and how each option influences cache invalidation, source‑map stability, and version locking across different developer machines.
Which approach yields more deterministic builds when :optimizations and :source‑map settings remain unchanged? How does each method affect the reproducibility of Figwheel Main or shadow‑cljs watch modes? What verification practices can confirm that the choice does not introduce hidden variability in generated assets?