Build Configuration Documentation
This document provides comprehensive documentation for all build configuration files in the STO Education Platform.Vite Configuration
Location: vite.config.ts
Overview
Vite is the primary build tool and development server for the application, providing fast development experience and optimized production builds.Configuration Details
Import Configuration
Version Plugin
Features:
- Injects version information into HTML meta tags
- Generates version.json file for update detection
- Creates build hash for cache busting
- Tracks build time for deployment monitoring
Main Configuration
Configuration Breakdown
Plugins
- React Plugin: Enables React Fast Refresh and JSX transformation
- Version Plugin: Custom plugin for version management
Path Resolution
- Alias:
@maps to./srcdirectory for clean imports
Global Definitions
- Version Info: Injects build information into the application
- Build Time: Timestamp of the build
- Build Hash: Unique hash for cache busting
ESBuild Configuration
- Production Mode: Removes console logs and debugger statements
- Development Mode: Preserves debugging information
Build Optimization
- Manual Chunks: Splits code into logical chunks for better caching
vendor: React and React DOMrouter: React Routersupabase: Supabase client
TypeScript Configuration
Location: tsconfig.json
Root Configuration
Structure: Uses project references for modular configuration
Application Configuration: tsconfig.app.json
Configuration Details
Compiler Options
- Target: ES2020 for modern JavaScript features
- Module: ESNext for latest module syntax
- JSX: React JSX transformation
- Strict Mode: Enables all strict type checking options
Path Mapping
- Base URL: Current directory
- Paths:
@/*maps to./src/*for clean imports
Type Checking
- Strict: Enables strict type checking
- No Unused Locals: Warns about unused variables
- No Unused Parameters: Warns about unused function parameters
- No Fallthrough Cases: Prevents switch statement fallthrough
Module Resolution
- Bundler: Uses bundler-specific module resolution
- Allow TS Extensions: Allows importing .ts files
- Isolated Modules: Treats each file as a separate module
Node Configuration: tsconfig.node.json
Features:
- Composite: Enables project references
- Build Info: Caches build information for faster subsequent builds
- Strict: Strict type checking for build tools
ESLint Configuration
Location: eslint.config.js
Configuration Overview
Configuration Breakdown
Extends
- JavaScript Recommended: Standard JavaScript linting rules
- TypeScript Recommended: TypeScript-specific linting rules
Files
- Target: TypeScript and TSX files
- Ignore: Dist directory
Language Options
- ECMA Version: ES2020
- Globals: Browser globals
Plugins
- React Hooks: React Hooks linting rules
- React Refresh: React Refresh linting rules
Rules
- React Hooks: Recommended React Hooks rules
- React Refresh: Only export components rule
PostCSS Configuration
Location: postcss.config.js
Plugins:
- Tailwind CSS: Utility-first CSS framework
- Autoprefixer: Automatic vendor prefixing
Tailwind CSS Configuration
Location: tailwind.config.js
Configuration Overview
Configuration Details
Content Sources
- HTML:
index.html - Source Files: All TypeScript and TSX files in src directory
Theme Extension
- Colors: Custom primary color palette
- Fonts: Inter font family configuration
- Spacing: Custom spacing values
- Breakpoints: Custom responsive breakpoints
Plugins
- Empty Array: No additional plugins configured
Vercel Configuration
Location: vercel.json
Deployment Configuration
Configuration Details
Build Configuration
- Build Command:
npm run build - Output Directory:
dist - Framework: Vite
Functions
- Version API: Node.js 18.x runtime for version endpoint
Headers
- CORS: Cross-origin resource sharing headers
- API Routes: Headers for API endpoints
Rewrites
- API Routes: Rewrites for API endpoints
Environment Configuration
Environment Variables
Required Variables
Variable Prefixes
- VITE_: Exposed to client-side code
- Server-side: Used only in Edge Functions
Build Scripts
Development Scripts
Development Server
Features:
- Hot module replacement
- Fast refresh
- Error overlay
- Source maps
Production Build
Features:
- TypeScript checking disabled for speed
- Sitemap generation
- Asset optimization
- Code splitting
Preview Build
Features:
- Production build serving
- Local testing
- Performance testing
Sitemap Scripts
Advanced Sitemap
Features:
- All routes included
- Metadata generation
- SEO optimization
Simple Sitemap
Features:
- Quick generation
- Basic route listing
Build Optimization
Code Splitting
- Vendor Chunks: Separate vendor libraries
- Route Chunks: Route-based code splitting
- Dynamic Imports: Lazy loading of components
Asset Optimization
- Image Optimization: Automatic image optimization
- CSS Purging: Unused CSS removal
- Tree Shaking: Dead code elimination
Performance Features
- Bundle Analysis: Bundle size monitoring
- Source Maps: Debug-friendly builds
- Hot Reload: Fast development experience
Deployment Configuration
Vercel Deployment
- Automatic Deployments: GitHub integration
- Environment Variables: Secure variable management
- Custom Domains: Domain configuration
- CDN: Global content delivery
Build Process
- Install Dependencies:
npm install - Type Checking: TypeScript validation
- Build Application: Vite build process
- Generate Sitemap: SEO optimization
- Deploy: Vercel deployment
Environment Management
- Development: Local environment variables
- Staging: Staging environment variables
- Production: Production environment variables
Monitoring and Analytics
Build Monitoring
- Build Times: Track build performance
- Bundle Sizes: Monitor bundle size changes
- Error Tracking: Build error monitoring
Performance Monitoring
- Core Web Vitals: Performance metrics
- User Experience: Real user monitoring
- Error Tracking: Application error tracking
Security Configuration
Build Security
- Environment Variables: Secure variable handling
- Source Maps: Production source map management
- Dependencies: Regular security updates
Deployment Security
- HTTPS: Automatic HTTPS enforcement
- Headers: Security headers configuration
- CORS: Cross-origin resource sharing
Maintenance and Updates
Regular Maintenance
- Dependency Updates: Regular package updates
- Security Patches: Immediate security updates
- Build Optimization: Performance improvements
Monitoring
- Build Success: Monitor build success rates
- Performance: Track build performance
- Errors: Monitor build errors
Troubleshooting
Common Issues
- Build Failures: TypeScript errors, dependency issues
- Performance: Slow builds, large bundles
- Deployment: Environment variable issues
Solutions
- TypeScript Errors: Fix type issues, update types
- Performance: Optimize imports, reduce bundle size
- Deployment: Check environment variables, verify configuration