Vite

SKILL.md

Vite Patterns

Environment Variables

  • Only VITE_ prefixed vars are exposed to client code — DB_PASSWORD stays server-side, VITE_API_URL is bundled
  • Access via import.meta.env.VITE_* not process.env — process.env is Node-only and undefined in browser
  • .env.local overrides .env and is gitignored by default — use for local secrets
  • import.meta.env.MODE is development or production — use for conditional logic, not NODE_ENV

CommonJS Compatibility

  • Pure ESM by default — CommonJS packages need optimizeDeps.include for pre-bundling
  • require() doesn't work in Vite — use import or createRequire from module for dynamic requires
  • Some packages ship broken ESM — add to ssr.noExternal or optimizeDeps.exclude and let Vite transform them
  • Named exports from CommonJS may fail — use default import and destructure: import pkg from 'pkg'; const { method } = pkg

Dependency Pre-bundling

  • Vite pre-bundles dependencies on first run — delete node_modules/.vite to force rebuild after package changes
  • Large dependencies slow down dev server start — add rarely-changing ones to optimizeDeps.include for persistent cache
  • Linked local packages (npm link) aren't pre-bundled — add to optimizeDeps.include explicitly
  • optimizeDeps.force: true rebuilds every time — only for debugging, kills dev performance
Installs
23
First Seen
Mar 10, 2026
Security Audits