---
url: >-
  https://lit-ui-router.dev/api/lit-ui-router-ssr/vite/functions/definePrerender.md
---
[lit-ui-router-ssr](../../index.md) / [vite](../index.md) / definePrerender

# Function: definePrerender()

```ts
function definePrerender(script): PrerenderEntry;
```

Defined in: [packages/lit-ui-router-ssr/src/vite.ts:95](https://github.com/simshanith/lit-ui-router/blob/ef3e46636efc18ec90dbba19adacfdffe05f88f4/packages/lit-ui-router-ssr/src/vite.ts#L95)

Turns a callback that returns this package's prerender options into a
prerender script's default export. The export spreads the build's values
(`outDir`, `shellHtml`, `write`) under the options and calls this
package's `prerender()`, so the script never calls it itself.

## Parameters

| Parameter | Type | Description |
| ------ | ------ | ------ |
| `script` | [`PrerenderScript`](../type-aliases/PrerenderScript.md) | returns the prerender options; handed the build's values |

## Returns

[`PrerenderEntry`](../type-aliases/PrerenderEntry.md)

the default export for the prerender script

## Example

```ts
export default definePrerender((site) => ({
  mounts,
  router,
  paths: ['/', '/about'],
  renderShell: async (_verdict, { path }) => {
    await settle(router, path);
    return page(router);
  },
  document: (body) => site.shellHtml.replace('<!--app-->', body),
}));
```
