Vite provides various configuration methods to meet different project requirements. Here's a detailed explanation of Vite configuration:
Configuration Files:
Vite automatically loads configuration files from the following locations (in priority order):
vite.config.jsvite.config.mjsvite.config.tsvite.config.cjs
Basic Configuration Structure:
javascriptimport { defineConfig } from 'vite' import react from '@vitejs/plugin-react' export default defineConfig({ plugins: [react()], server: { port: 3000, open: true }, build: { outDir: 'dist', sourcemap: true } })
Common Configuration Options:
Dev Server Configuration (server):
port: Specify dev server porthost: Specify server hostnameopen: Auto-open browser on startupproxy: Configure proxy to solve CORS issuescors: Configure CORS policyhttps: Enable HTTPS
Build Configuration (build):
outDir: Output directoryassetsDir: Static assets directorysourcemap: Whether to generate source mapsminify: Minification method (terser, esbuild)target: Build target browsersrollupOptions: Rollup configuration optionschunkSizeWarningLimit: Chunk size warning threshold
Path Aliases (resolve.alias):
javascriptresolve: { alias: { '@': '/src', '@components': '/src/components' } }
CSS Configuration (css):
preprocessorOptions: Preprocessor optionsmodules: CSS Modules configurationpostcss: PostCSS configuration
Dependency Optimization Configuration (optimizeDeps):
include: Force included dependenciesexclude: Excluded dependenciesesbuildOptions: esbuild options
Environment Variables:
Vite supports configuring environment variables through .env files:
.env: All environments.env.development: Development environment.env.production: Production environment.env.local: Local override
Environment variables must start with VITE_ to be accessible in client code.
Conditional Configuration:
javascriptexport default defineConfig(({ command, mode }) => { if (command === 'serve') { return { /* dev config */ } } else { return { /* build config */ } } })
TypeScript Support:
Using defineConfig provides full type hints and intelligent code completion.