{"id":22785,"library":"vite-plugin-prerenderer","title":"vite-plugin-prerenderer","description":"A Vite plugin for prerendering applications to static HTML using Puppeteer, targeting improved SEO and faster initial page loads. Version 1.0.1 is the current stable release with no recent updates. It supports any framework (Vue, React, Svelte, etc.) and allows configuration of routes and per-route metadata like title, keywords, and description. Unlike other prerender solutions, it runs headless Chrome via Puppeteer and integrates directly into the Vite build pipeline. The plugin is lightweight but lacks TypeScript definitions and has limited documentation.","status":"active","version":"1.0.1","language":"javascript","source_language":"en","source_url":"https://github.com/beigouzheng/vite-plugin-prerenderer","tags":["javascript","vite","prerenderer"],"install":[{"cmd":"npm install vite-plugin-prerenderer","lang":"bash","label":"npm"},{"cmd":"yarn add vite-plugin-prerenderer","lang":"bash","label":"yarn"},{"cmd":"pnpm add vite-plugin-prerenderer","lang":"bash","label":"pnpm"}],"dependencies":[{"reason":"Puppeteer is used to render pages headlessly","package":"puppeteer","optional":true}],"imports":[{"note":"Default export, ESM only (no CommonJS export)","wrong":"const vitePluginPrerenderer = require('vite-plugin-prerenderer')","symbol":"vitePluginPrerenderer","correct":"import vitePluginPrerenderer from 'vite-plugin-prerenderer'"},{"note":"Use default import syntax, not named import","wrong":"import { default } from 'vite-plugin-prerenderer'","symbol":"default","correct":"import vitePluginPrerenderer from 'vite-plugin-prerenderer'"},{"note":"TypeScript users can import Config type (if available, but plugin has no types)","wrong":"","symbol":"Config","correct":"import type { Config } from 'vite-plugin-prerenderer'"}],"quickstart":{"code":"// vite.config.js\nimport { defineConfig } from 'vite';\nimport vitePluginPrerenderer from 'vite-plugin-prerenderer';\n\nexport default defineConfig({\n  plugins: [\n    vitePluginPrerenderer({\n      routes: ['/', '/about', '/contact'],\n      options: {\n        '/': { title: 'Home', keyWords: ['vite', 'prerender'], description: 'Home page' },\n        '/about': { title: 'About', description: 'About us' },\n      },\n    }),\n  ],\n});","lang":"javascript","description":"Shows basic setup: import plugin, configure routes with optional per-route metadata."},"warnings":[{"fix":"Install puppeteer as a dev dependency: `npm install puppeteer -D`.","message":"Puppeteer must be installed separately or you will get a runtime error.","severity":"gotcha","affected_versions":">=0.0.0"},{"fix":"Use puppeteer-core with a pre-installed Chrome binary, or run in an environment with Chrome available.","message":"Plugin uses Puppeteer under the hood; it may fail in serverless or CI environments without headless Chrome.","severity":"breaking","affected_versions":">=0.0.0"},{"fix":"None, as the plugin does not expose this.","message":"The plugin's configuration does not allow customizing Puppeteer launch options (e.g., headless mode, args).","severity":"deprecated","affected_versions":">=0.0.0"}],"env_vars":null,"last_verified":"2026-04-27T00:00:00.000Z","next_check":"2026-07-26T00:00:00.000Z","problems":[{"fix":"Run `npx puppeteer browsers install chrome` or install puppeteer with `npm install puppeteer`.","cause":"Puppeteer not installed or Chrome executable not found.","error":"Error: Failed to launch the browser process! Puppeteer v22.1.0"},{"fix":"Use: `import vitePluginPrerenderer from 'vite-plugin-prerenderer'`","cause":"Plugin imported incorrectly (e.g., named import instead of default).","error":"TypeError: vitePluginPrerenderer is not a function"},{"fix":"Switch to `import vitePluginPrerenderer from 'vite-plugin-prerenderer'`","cause":"Using require() in an ESM project.","error":"ReferenceError: require is not defined in ES module scope"},{"fix":"Ensure all routes have an entry in options if you provide options; or omit options entirely if not needed.","cause":"Options object does not have a key for a route listed in routes array.","error":"Error: The route '/' is not defined in options."}],"ecosystem":"npm","meta_description":null,"install_score":null,"install_tag":null,"quickstart_score":null,"quickstart_tag":null}