---
url: >-
  https://lit-ui-router.dev/reference/ui-router-server/vite/interfaces/ServerRouterPlugin.md
---
[ui-router-server](../../index.md) / [vite](../index.md) / ServerRouterPlugin

# Interface: ServerRouterPlugin

Defined in: [vite.ts:172](https://github.com/simshanith/lit-ui-router/blob/740888c2b2ba358c4dfa52a122e927df6a604b12/packages/ui-router-server/src/vite.ts#L172)

A structural subset of Vite's `Plugin` — assignable into `plugins: [...]`.

## Properties

| Property | Type | Description | Defined in |
| ------ | ------ | ------ | ------ |
|  `closeBundle` | { `handler`(`this`, `error?`): `Promise`<`void`>; `order`: `"post"`; `sequential`: `true`; } | Runs the prerender entry once the client build has written its output. | [vite.ts:188](https://github.com/simshanith/lit-ui-router/blob/740888c2b2ba358c4dfa52a122e927df6a604b12/packages/ui-router-server/src/vite.ts#L188) |
| `closeBundle.handler` | (`this`, `error?`) => `Promise`<`void`> | The build step; a no-op without [prerender](ServerRouterPluginOptions.md#prerender). | [vite.ts:194](https://github.com/simshanith/lit-ui-router/blob/740888c2b2ba358c4dfa52a122e927df6a604b12/packages/ui-router-server/src/vite.ts#L194) |
| `closeBundle.order` | `"post"` | After every other plugin's `closeBundle`. | [vite.ts:190](https://github.com/simshanith/lit-ui-router/blob/740888c2b2ba358c4dfa52a122e927df6a604b12/packages/ui-router-server/src/vite.ts#L190) |
| `closeBundle.sequential` | `true` | Not alongside them. | [vite.ts:192](https://github.com/simshanith/lit-ui-router/blob/740888c2b2ba358c4dfa52a122e927df6a604b12/packages/ui-router-server/src/vite.ts#L192) |
|  `name` | `string` | The plugin name Vite reports in errors and logs. | [vite.ts:174](https://github.com/simshanith/lit-ui-router/blob/740888c2b2ba358c4dfa52a122e927df6a604b12/packages/ui-router-server/src/vite.ts#L174) |

## Methods

### config()

```ts
config(config): ViteUserConfig | undefined;
```

Defined in: [vite.ts:176](https://github.com/simshanith/lit-ui-router/blob/740888c2b2ba358c4dfa52a122e927df6a604b12/packages/ui-router-server/src/vite.ts#L176)

Sets Vite's `base` from the router's when the config leaves it unset; throws when the two differ.

#### Parameters

| Parameter | Type |
| ------ | ------ |
| `config` | [`ViteUserConfig`](ViteUserConfig.md) |

#### Returns

[`ViteUserConfig`](ViteUserConfig.md) | `undefined`

***

### configResolved()

```ts
configResolved(config): Promise<void>;
```

Defined in: [vite.ts:182](https://github.com/simshanith/lit-ui-router/blob/740888c2b2ba358c4dfa52a122e927df6a604b12/packages/ui-router-server/src/vite.ts#L182)

Reads the root, the base, the output directory and the logger. Under a
base the router doesn't declare, resolves it and throws when a mount
already carries it.

#### Parameters

| Parameter | Type |
| ------ | ------ |
| `config` | [`ViteResolvedConfig`](ViteResolvedConfig.md) |

#### Returns

`Promise`<`void`>

***

### configurePreviewServer()

```ts
configurePreviewServer(server): void;
```

Defined in: [vite.ts:186](https://github.com/simshanith/lit-ui-router/blob/740888c2b2ba358c4dfa52a122e927df6a604b12/packages/ui-router-server/src/vite.ts#L186)

Installs the same middleware into `vite preview`, serving the prerendered pages when there are any.

#### Parameters

| Parameter | Type |
| ------ | ------ |
| `server` | [`ViteMiddlewareServer`](ViteMiddlewareServer.md) |

#### Returns

`void`

***

### configureServer()

```ts
configureServer(server): void;
```

Defined in: [vite.ts:184](https://github.com/simshanith/lit-ui-router/blob/740888c2b2ba358c4dfa52a122e927df6a604b12/packages/ui-router-server/src/vite.ts#L184)

Installs the middleware into `vite dev`, synchronously so it lands in the PRE position.

#### Parameters

| Parameter | Type |
| ------ | ------ |
| `server` | [`ViteMiddlewareServer`](ViteMiddlewareServer.md) |

#### Returns

`void`
