Vite's plugin ecosystem is a mile wide and most of it you won't need. These are the ones that earn their keep in nearly every React 19 SPA.
The essential five
- @vitejs/plugin-react — wires React Fast Refresh, JSX transform, automatic dev-only imports. Required for any React project.
- @tailwindcss/vite — Tailwind v4 integration (Track 1 lesson 3).
- vite-plugin-svgr — import SVG files as React components:
import { ReactComponent as Icon } from './icon.svg'. Indispensable if you use SVG icons. - rollup-plugin-visualizer — bundle treemap after build (Track 8 lesson 1).
- vite-plugin-checker — runs TypeScript and ESLint in a separate process during dev, so errors surface alongside the browser preview without slowing the dev server.
Optional but useful
- vite-plugin-pwa — turn your SPA into a PWA with offline support and installability.
- unplugin-icons — type-safe icon imports from any icon set (Lucide, Heroicons, etc.) with tree-shaking.
- vite-imagetools — image processing at build time (resize, format conversion, srcset generation).
What to avoid
Don't add plugins speculatively. Each one adds startup time and a new failure surface. The default Vite + React + Tailwind setup is enough to ship; reach for plugins when you have a specific need.
Plugin selection is part of your stack identity. The five essentials above show up in nearly every modern React SPA. The optional ones tell you something about the app (PWA → offline-capable; imagetools → image-heavy; unplugin-icons → design-system-driven). Choose plugins that match what your app actually does.