# vite-plugin-multip

> Build real multi page application with vite

Latest version **1.1.7** (published 2024-08-03) · MIT license · 0 weekly downloads

## Install

```sh
npm install vite-plugin-multip
pnpm add vite-plugin-multip
yarn add vite-plugin-multip
bun add vite-plugin-multip
```

## Health

**Score 25/100 (F)** — status: abandoned.

Positive: has types; esm support; no vulnerabilities.

Warnings: low downloads.

Negative: abandoned; low maintenance score.

## Facts

| | |
|---|---|
| Version | 1.1.7 |
| Published | 2024-08-03 |
| First published | 2024-03-17 |
| Weekly downloads | 0 |
| License | MIT |
| TypeScript types | bundled |
| Module format | ESM + CommonJS |
| Dependencies | 5 |
| Unpacked size | 14.2 KB |
| Known vulnerabilities | 0 (+3 in 1 direct dependencies) |
| Install scripts | no |
| GitHub stars | 10 |
| Author | Valerio Clemenzi |
| Maintainers | vclemenzi |
| Keywords | vite, mpa, plugin, multi, page, application, vite-plugin |

## Links

- npm: https://www.npmjs.com/package/vite-plugin-multip
- Repository: https://github.com/vclemenzi/vite-plugin-multip
- Homepage: https://github.com/vclemenzi/vite-plugin-multip#readme
- Issues: https://github.com/vclemenzi/vite-plugin-multip/issues
- npm.io page: https://npm.io/package/vite-plugin-multip

## Dependencies (5)

- [vite](https://npm.io/package/vite.md) ^5.2.9
- [tiny-glob](https://npm.io/package/tiny-glob.md) ^0.2.9
- [micromatch](https://npm.io/package/micromatch.md) ^4.0.5
- [markdown-it](https://npm.io/package/markdown-it.md) ^14.1.0
- [html-minifier-terser](https://npm.io/package/html-minifier-terser.md) ^7.2.0

## Alternatives

- [raw-loader](https://npm.io/package/raw-loader.md) — 4.3M weekly downloads
- [plop](https://npm.io/package/plop.md) — 1.4M weekly downloads
- [webpack-deadcode-plugin](https://npm.io/package/webpack-deadcode-plugin.md) — 80.3K weekly downloads
- [@storybook/preact-vite](https://npm.io/package/@storybook/preact-vite.md) — 54.2K weekly downloads
- [vite-plugin-transform](https://npm.io/package/vite-plugin-transform.md) — 2.4K weekly downloads

## Recent versions

- 1.1.7 (latest) — 2024-08-03
- 1.1.6 — 2024-05-01
- 1.1.5 — 2024-04-27
- 1.1.4 — 2024-04-27
- 1.1.3 — 2024-04-25
- 1.1.2 — 2024-04-24
- 1.1.1 — 2024-04-22
- 1.1.0 — 2024-04-20
- 1.0.9 — 2024-04-18
- 1.0.8 — 2024-04-18
- 1.0.7 — 2024-04-15
- 1.0.6 — 2024-04-14
- 1.0.5 — 2024-04-14
- 1.0.4 — 2024-04-14
- 1.0.3 — 2024-04-14
- … 27 more at https://npm.io/package/vite-plugin-multip/versions

## README

# vite-plugin-multip

[![npm version](https://img.shields.io/npm/v/vite-plugin-multip)](https://npmjs.com/package/vite-plugin-multip)
[![weekly downloads](https://img.shields.io/npm/dw/vite-plugin-multip)](https://npmjs.com/package/vite-plugin-multip)
[![license](https://img.shields.io/npm/l/vite-plugin-multip)](https://github.com/vclemenzi/vite-plugin-multip/blob/main/LICENSE)

The `vite-plugin-multip` plugin enables you to create multi-page applications with Vite!

- 📦 Automatic CSS file importing
- 🧬 Layouts support
- 🔎 Framework recognition
- 📝 Markdown support
- 🥏 Multi-Framework support

# Installation

```bash
npm install vite-plugin-multip
```

_Alternatively, you can use your favorite package manager._

After installing the plugin, proceed with initialization in the `vite.config.ts` file:

```typescript
import { defineConfig } from "vite";
import { svelte } from "@sveltejs/vite-plugin-svelte";
import { multip } from "vite-plugin-multip";

export default defineConfig({
  plugins: [
    svelte(),
    multip(), // Optional configuration parameters can be passed here
  ],
});
```

> [!NOTE]
> In the above example, the Svelte adapter is used, but the plugin also automatically supports Vue and React.

Now, let's start by creating the appropriate directories:

```bash
src/
  pages/
    index.(svelte|tsx|vue)
    subroute/
       index.(svelte|tsx|vue)
```

Remove imports in `index.html` (required):

```diff
<!doctype html>
<html lang="en">
<head>
  <meta charset="UTF-8" />
  <link rel="icon" type="image/svg+xml" href="/vite.svg" />
  <meta name="viewport" content="width=device-width, initial-scale=1.0" />
  <title>Vite + Svelte + TS</title>
</head>
<body>
+ <slot />
- <div id="app"></div>
- <script type="module" src="/src/main.ts"></script>
</body>
</html>
```

_index.html works as a layout_

Now, build:

```bash
npm run build
```

> [!NOTE]
> The `dist/` directory can be directly integrated with your backend without modification.

# Configuration

Configuration parameters

```ts
// plugins: [multip(...config)]
type Config = {
  directory?: string;
  page?: Page;
  minify?: import("html-minifier-terser").Options;
  assets?: import("rollup-plugin-copy").Target[];
};

type Page = {
  title?: string | ((file: string) => string);
};
```

# Framework Support

| Framework | Support |
| --------- | ------- |
| React     | Yes     |
| Vue       | Yes     |
| Svelte    | Yes     |
| Solid     | Yes     |
| Qwik      | No      |
| Lit       | No      |

---
_Source: https://npm.io/package/vite-plugin-multip · Machine-readable twin of the npm.io package page. Health data is recomputed on every publish._
