{"id":22784,"library":"vite-plugin-prerender","title":"vite-plugin-prerender","description":"A flexible, framework-agnostic Vite plugin for prerendering static HTML from single-page applications. Version 1.0.8 supports any framework (Vue, React, etc.) and offers customizable configuration including route selection, post-processing, minification, and server options. It uses Puppeteer under the hood via the prerenderer library. Release cadence is irregular; the plugin is largely feature-complete with occasional bug fixes. Differentiators include full Vite compatibility, ease of use, and support for custom renderers.","status":"active","version":"1.0.8","language":"javascript","source_language":"en","source_url":"https://github.com/Rudeus3Greyrat/vite-plugin-prerender","tags":["javascript","vite","vite-plugin","prerender","Rudeus3Greyrat","typescript"],"install":[{"cmd":"npm install vite-plugin-prerender","lang":"bash","label":"npm"},{"cmd":"yarn add vite-plugin-prerender","lang":"bash","label":"yarn"},{"cmd":"pnpm add vite-plugin-prerender","lang":"bash","label":"pnpm"}],"dependencies":[{"reason":"peer dependency required at >=2.0.0 for plugin functionality","package":"vite","optional":false}],"imports":[{"note":"Default export only; named import will fail.","wrong":"import { vitePrerender } from 'vite-plugin-prerender'","symbol":"default","correct":"import vitePrerender from 'vite-plugin-prerender'"},{"note":"PuppeteerRenderer is a property on the default export, not a named export.","wrong":"import { PuppeteerRenderer } from 'vite-plugin-prerender'","symbol":"PuppeteerRenderer","correct":"import vitePrerender from 'vite-plugin-prerender'; const PuppeteerRenderer = vitePrerender.PuppeteerRenderer"},{"note":"CJS is supported for Node.js <12? ESM is recommended. Use .mjs or type: module for ESM.","wrong":"","symbol":"CommonJS require","correct":"const vitePrerender = require('vite-plugin-prerender')"}],"quickstart":{"code":"import vitePrerender from 'vite-plugin-prerender';\nimport path from 'path';\n\nexport default () => ({\n  plugins: [\n    vitePrerender({\n      staticDir: path.join(__dirname, 'dist'),\n      routes: ['/', '/about', '/contact'],\n    }),\n  ],\n});","lang":"typescript","description":"Basic Vite configuration to prerender three routes into static HTML files."},"warnings":[{"fix":"Use vite build to generate prerendered output.","message":"Plugin only works during vite build, not dev server. Hot reload won't trigger prerendering.","severity":"gotcha","affected_versions":">=1.0.0"},{"fix":"Upgrade to v1.0.8 or ensure postProcess always returns a renderedRoute object.","message":"The `postProcess` function in v1.0.7 had a bug: if it didn't return a value, the route was dropped. This was fixed in v1.0.8.","severity":"deprecated","affected_versions":"1.0.7"},{"fix":"","message":"Default export changed from named to default? Verify if any breaking changes between major versions (none identified so far).","severity":"breaking","affected_versions":">=1.0.0"},{"fix":"npm install puppeteer --save-dev","message":"Puppeteer is required as a peer dependency but not listed; must be installed separately.","severity":"gotcha","affected_versions":">=1.0.0"},{"fix":"List all routes explicitly or generate them programmatically.","message":"Routes must exactly match the client-side router paths; wildcards or glob patterns are not supported.","severity":"gotcha","affected_versions":">=1.0.0"}],"env_vars":null,"last_verified":"2026-04-27T00:00:00.000Z","next_check":"2026-07-26T00:00:00.000Z","problems":[{"fix":"npm install puppeteer --save-dev","cause":"Puppeteer not installed (it's a peer dependency).","error":"Error: Cannot find module 'puppeteer'"},{"fix":"Change import from `import { vitePrerender } from 'vite-plugin-prerender'` to `import vitePrerender from 'vite-plugin-prerender'`","cause":"Using named import instead of default import.","error":"TypeError: vitePrerender is not a function"},{"fix":"Add staticDir: path.join(__dirname, 'dist') to the options object.","cause":"Missing staticDir in plugin configuration.","error":"Error: The 'staticDir' option is required."},{"fix":"Provide an array of route strings in the options, e.g., routes: ['/', '/about'].","cause":"Missing or empty routes array.","error":"Error: No routes provided. Please specify at least one route to prerender."}],"ecosystem":"npm","meta_description":null,"install_score":null,"install_tag":null,"quickstart_score":null,"quickstart_tag":null}