Skip to content

Manifest Files

Emitted by vite-dotnet Development Production

The Vite plugin emits two small integration manifests that tell the back end how to mount your app, with no hand-written configuration beyond the app’s folder name. Both are written to wwwroot/{appFolder}/ (e.g. wwwroot/ReactApp/), so they sit alongside the production build output:

  • manifest.dev.json — how to reach the running dev server. Consumed by dev-vite-scripts.
  • manifest.prod.json — integration metadata for the built assets. Consumed by prod-vite-scripts.

Both manifests carry the entrypoint, container id, and React flag passed to (or detected by) the plugin. Only the dev manifest carries a port — production serves the built assets statically.

FieldTypeManifestDescription
entrypointstringbothThe entry module passed to ViteDotNetPlugin.
containerElementIdstringbothThe mount element id passed to ViteDotNetPlugin.
isReactbooleanbothWhether a React plugin was detected in the resolved config.
portnumberdev onlyThe port the dev server bound to (config.server.port, default 5173).

Written during the dev server’s listening event — once npm run dev has started and the server has bound its port. If you load the hosting page before this happens, the dev tag helper falls back to its defaults and retries.

{
"port": 5173,
"entrypoint": "src/main.tsx",
"containerElementId": "root",
"isReact": true
}

Emitted from the plugin’s generateBundle hook during vite build, alongside Vite’s own manifest.json.

{
"entrypoint": "src/main.tsx",
"containerElementId": "root",
"isReact": true
}

manifest.prod.json does not contain the hashed asset paths. Those live in Vite’s standard build manifest, wwwroot/{appFolder}/manifest.json, which maps your entrypoint to its output file and associated css. The production tag helper reads both:

  • manifest.json → the hashed JS and CSS paths to emit as <script> / <link> tags.
  • manifest.prod.json → the containerElementId for the mount <div>.