A Vite plugin for easily integrating Pagefind into Vite based projects.
- Pagefind works during development.
- Pagefind can be safely imported.
Install from npm using your preferred package manager:
pnpm add -D pagefind vite-plugin-pagefind
- Add the plugin to in
vite.config
:
import { defineConfig } from "vite";
import { pagefind } from "vite-plugin-pagefind";
export default defineConfig({
plugins: [
pagefind({
outputDirectory: "<OUTPUT_DIRECTORY>",
assetsDirectory: "<ASSETS_DIRECTORY>",
bundleDirectory: "<BUNDLE_DIRECTORY>",
buildScript: "<BUILD_SCRIPT>",
developStrategy: "<DEVELOP_STRATEGY>",
}),
],
});
- Add the post build step of running
pagefind
in yourpackage.json
:
{
"scripts": {
"<BUILD_SCRIPT>": "vite build && pagefind --site \"<OUTPUT_DIRECTORY>\""
}
}
The directory where the build output is located in.
default: 'build'
The directory where the static assets are located in.
default: 'public'
The directory where the pagefind bundle is located in.
default: 'pagefind'
The script that builds the app.
default: 'build'
The indexing strategy used during development:
- "lazy": Build and index the output only if the bundle is not present.
- "eager": Build and index the output regardless of the bundle's presence.
default: 'lazy'
As well as the plugin, this package also exposes the official Pagefind types:
import type { Pagefind } from "vite-plugin-pagefind/types";
const pagefind: Pagefind = await import("/pagefind/pagefind.js");