ARKlight logoARKlight
Getting startedTutorialReferenceExamplesWhyChangelog

Compiler notes

Styling model
Preprocessing
Sourcemaps and debugging
Custom elements
Build tooling

Build tooling

Five more short essays, part 5 of 5.

reference/svelte-v2.16.1/rollup.config.js

,

rollup.store.config.js

and

package.json

show what surrounded the v2 compiler itself: a bundler configuration, a separate build for

store.js

, and

src/Stats.ts

tracking compile-time statistics as its own module.

arklight build site.py -o ARK

is 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.

CLI

lists 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.

Open

Preprocessing

No pipeline stage for a second authoring language, because the entry file is already plain Python.

Open

Sourcemaps and debugging

Nothing transformed to map back to, so --debug prints a real Python traceback instead.

Open

Custom elements

No compile target for exporting a component as a reusable element outside its own build.

Open
LicenseChangelogGitHubPyPI

ARKlight is GPLv3 with attribution terms; sites you build are yours. Your browser is still running JavaScript. We just made Python responsible for getting it there.