Build tooling
Five more short essays, part 5 of 5.
reference/svelte-v2.16.1/rollup.config.js,
rollup.store.config.jsand
package.jsonshow what surrounded the v2 compiler itself: a bundler configuration, a separate build for
store.js, and
src/Stats.tstracking compile-time statistics as its own module.
arklight build site.py -o ARKis the entire pipeline in one command, with no bundler to configure around it -- there's nothing downstream to bundle, since the output is already the static HTML, CSS and one fixed JS runtime a browser serves directly.
CLIlists the handful of flags that exist instead of a config file:
-v/--verbose,
--debug,
--narrate, and the small set of site-wide overrides.
Where build-time information still comes out
- sbom.txt, written with every build, is the closest thing to Stats.ts's compile-time bookkeeping -- a manifest of what the build actually produced, touched on in sourcemaps and debugging.
- arklight.config.py covers genuinely build-affecting settings -- CSP, the live-streaming host and port, Android/Desktop packaging -- without turning into a general-purpose plugin pipeline.
- arklight pack and arklight deploy are later, separate steps -- bundling into a .ark file and shipping to Cloudflare Workers via Wrangler -- not stages a single build config wires together.
The trade is the same one running through this whole series: fewer configuration surfaces, because there's a closed vocabulary and one pipeline rather than a bundler project can extend arbitrarily.
Styling model
No component-scoped stylesheet pass, because no component boundary survives into the output.
OpenPreprocessing
No pipeline stage for a second authoring language, because the entry file is already plain Python.
OpenSourcemaps and debugging
Nothing transformed to map back to, so --debug prints a real Python traceback instead.
OpenCustom elements
No compile target for exporting a component as a reusable element outside its own build.
Open