islands-build — the islands.rs build pipeline, as a library
Everything needed to build an islands.rs app, decoupled from any one
repository's layout. A thin xtask (this repo's, or a downstream consumer's)
constructs a [BuildPlan] — from an [IslandsConfig] (islands.toml) or its
own discovery — and calls [build].
The pipeline:
- WASM ([
wasm::build_wasm]): resolve + install the matchingwasm-bindgen-cli, compile the runtime ([wasm::build_runtime]) and page crates towasm32-unknown-unknown, runwasm-bindgen --target web, verify the artifacts, and apply the load-bearing V8 namespace patch. - CSS ([
css::build_css]): build the sharedbase.cssand a per-page Tailwind bundle for each page (optionally materializingbasecoat.css). - Manifest ([
hashing::post_build_hashing_pass], gated by [BuildPlan::manifest]): content-hash every asset, rewrite cross-asset references, and writemanifest.json. Off ⇒ logical filenames, resolved bypage_shell's logical-path fallback.
The V8 namespace patch is exported as a first-class, tested API: skipping it produces a bundle the browser refuses to instantiate, so no consumer should ever have to rediscover it.