Configure ClojureScript code splitting with Closure Compiler modules using cljs.main or shadow-cljs. Define a base module, add feature entry points, verify output sizes, and implement runtime loading with error recovery.
ClojureScript's :advanced compilation can shrink a Reagent app from 180 KB to 45 KB gzipped, but only if you describe every external JavaScript dependency in externs files. This post shows the size gains, the externs pitfall, and a practical CI profile strategy.
Discover how ClojureScript’s :advanced mode can shrink JavaScript bundles by 30‑70 % through dead‑code elimination, what to configure, and how to avoid common pitfalls.
Compare externs files, cljs-oops, and shadow-cljs npm integration for safe ClojureScript interop under :advanced compilation. Includes a validation checklist that catches renaming bugs before they reach production.
We have a ClojureScript 1.11.x browser project that currently compiles with :target :node and uses :modules to split output into a main chunk plus a lazily loaded feature chunk. We are evaluating a move to :target :bundle so webpack 5 handles npm resolution and code splitting instead of Closure Compiler's module processing. The uncertainty is how the existin
I am configuring a ClojureScript build that compiles with :optimizations :advanced via the Google Closure Compiler. The goal is a minified production bundle where calls into a plain JavaScript library — accessed through the js/ prefix and goog.object — still resolve correctly at runtime. The constraint I am unsure about is the externs boundary. My understand