Vite
SKILL.md
Vite Patterns
Environment Variables
- Only
VITE_prefixed vars are exposed to client code —DB_PASSWORDstays server-side,VITE_API_URLis bundled - Access via
import.meta.env.VITE_*notprocess.env— process.env is Node-only and undefined in browser .env.localoverrides.envand is gitignored by default — use for local secretsimport.meta.env.MODEisdevelopmentorproduction— use for conditional logic, notNODE_ENV
CommonJS Compatibility
- Pure ESM by default — CommonJS packages need
optimizeDeps.includefor pre-bundling require()doesn't work in Vite — useimportorcreateRequirefrommodulefor dynamic requires- Some packages ship broken ESM — add to
ssr.noExternaloroptimizeDeps.excludeand 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/.viteto force rebuild after package changes - Large dependencies slow down dev server start — add rarely-changing ones to
optimizeDeps.includefor persistent cache - Linked local packages (
npm link) aren't pre-bundled — add tooptimizeDeps.includeexplicitly optimizeDeps.force: truerebuilds every time — only for debugging, kills dev performance