vite-plugin-pagefind

raw JSON →
1.1.1 verified Mon Apr 27 auth: no javascript

A Vite plugin that integrates Pagefind search indexing into Vite projects. v1.1.1 (stable) supports Vite >=4.0.0 and enables Pagefind to work during development with configurable strategies (lazy/eager). Unlike manual Pagefind setup, this plugin provides seamless Vite integration, TypeScript types, and inline configuration (removed JSON config support in v1.0.0). Release cadence: ~2-3 months. Key differentiator: fully inlined config and dev-mode indexing.

error Error: Cannot find module 'vite-plugin-pagefind'
cause Package not installed or import path incorrect.
fix
Ensure plugin is installed: pnpm add -D vite-plugin-pagefind, and use correct import path: 'vite-plugin-pagefind'.
error TypeError: pagefind is not a function
cause Default import instead of named import.
fix
Change to import { pagefind } from 'vite-plugin-pagefind'.
error Error: build script not found
cause The buildScript option refers to a script that does not exist in package.json.
fix
Define the script in package.json scripts, or set buildScript to 'build' (default) and ensure it exists.
error The 'pagefind' package is not installed
cause Missing runtime dependency.
fix
Install pagefind: pnpm add -D pagefind.
breaking v1.0.0 removed support for pagefind.json config. All options must be passed inline to the plugin.
fix Move any pagefind.json settings into the plugin options object in vite.config.ts.
gotcha The 'developStrategy' option defaults to 'lazy', which only indexes if the bundle directory is missing. Use 'eager' if you need indexing on every dev start.
fix Set developStrategy: 'eager' in plugin options.
gotcha The 'pagefind' package is required as a dependency; it is not automatically installed.
fix Install pagefind separately: pnpm add -D pagefind.
gotcha Importing 'pagefind' as default will result in undefined because the export is named.
fix Use named import: import { pagefind } from 'vite-plugin-pagefind'.
deprecated v0.x used pagefind.json for configuration; that file is ignored in v1.0.0+.
fix Remove pagefind.json and pass options inline.
npm install vite-plugin-pagefind
yarn add vite-plugin-pagefind
pnpm add vite-plugin-pagefind

Configures Vite with the Pagefind plugin using inline options and sets up the build script to run Pagefind after Vite build.

// pnpm add -D pagefind vite-plugin-pagefind
// vite.config.ts
import { defineConfig } from 'vite';
import { pagefind } from 'vite-plugin-pagefind';

export default defineConfig({
  plugins: [
    pagefind({
      outputDirectory: 'dist',
      assetsDirectory: 'public',
      bundleDirectory: 'pagefind',
      buildScript: 'build',
      developStrategy: 'lazy',
    }),
  ],
});

// package.json
{
  "scripts": {
    "build": "vite build && pagefind --site 'dist'"
  }
}