Skip to main content

README.md

# Duskmoon Bundler Runtime

Production-safe asset resolver for manifests generated by `duskmoon_bundler`.

Phoenix runtime releases can depend on this package without carrying the build
and development toolchain:

```elixir
{:duskmoon_bundler_runtime, "~> 9.7"}
```

Development and production asset builds should include the build package too:

```elixir
{:duskmoon_bundler_runtime, "~> 9.7"},
{:duskmoon_bundler, "~> 9.7", runtime: Mix.env() == :dev}
```

The runtime package owns the public template-facing APIs:

```heex
<link phx-track-static rel="stylesheet" href={DuskmoonBundler.static_path(@endpoint, "/assets/css/app.css")} />
<script defer phx-track-static type="module" src={DuskmoonBundler.static_path(@endpoint, "/assets/js/app.js")}></script>
<%= DuskmoonBundler.Preload.tags(@endpoint, "/assets/js/app.js") %>
```

It reads `manifest.json`, resolves content-hashed asset paths, and generates
modulepreload tags. It does not start dev server, watcher, HMR, Tailwind, OXC,
Vize, or QuickBEAM processes.