Build Scripts
This document details all build scripts and automation tools used in the STO Education Platform.Package.json Scripts
Development Scripts
npm run dev
- Purpose: Start development server with hot module replacement
- Command:
vite - Features:
- Hot module replacement (HMR)
- TypeScript compilation
- Source maps for debugging
- Fast refresh for React components
- Environment variable loading
npm run build
- Purpose: Build production bundle
- Command:
tsc && vite build - Process:
- TypeScript type checking (
tsc) - Vite production build with optimizations
- Asset optimization and minification
- Chunk splitting for better caching
- TypeScript type checking (
npm run build:seo
- Purpose: Build optimized for SEO and static hosting
- Command:
tsc && vite build --mode seo - Features:
- Static asset optimization
- SEO-friendly meta tags
- Sitemap generation
- Static page pre-rendering
npm run preview
- Purpose: Preview production build locally
- Command:
vite preview - Use Case: Test production build before deployment
npm run lint
- Purpose: Run ESLint for code quality checks
- Command:
eslint . --ext ts,tsx --report-unused-disable-directives --max-warnings 0 - Features:
- TypeScript and React linting
- Unused directive reporting
- Zero warnings policy
npm run type-check
- Purpose: TypeScript type checking without emitting files
- Command:
tsc --noEmit - Use Case: CI/CD type validation
SEO and Sitemap Scripts
npm run generate-sitemap
- Purpose: Generate comprehensive sitemap with dynamic content
- File:
scripts/generate-sitemap.js - Features:
- Dynamic route generation from database
- Static page inclusion
- Priority and frequency settings
- XML sitemap format
npm run generate-sitemap:simple
- Purpose: Generate simple static sitemap
- File:
scripts/generate-sitemap-simple.js - Use Case: Quick sitemap generation for static sites
Build Configuration
Vite Configuration
Build Optimizations
Production Optimizations
- Code Splitting: Automatic chunk splitting for better caching
- Tree Shaking: Remove unused code
- Minification: JavaScript and CSS minification
- Asset Optimization: Image and font optimization
- Console Removal: Remove console statements in production
Manual Chunk Configuration
Version Plugin
Sitemap Generation Scripts
Comprehensive Sitemap Generator
Simple Sitemap Generator
Build Process Flow
Development Build
Production Build
SEO Build
Build Output Structure
Production Build Output
Version Information
Build Performance
Optimization Strategies
-
Code Splitting:
- Separate vendor libraries
- Route-based splitting
- Dynamic imports for large components
-
Asset Optimization:
- Image compression
- Font optimization
- CSS purging
-
Bundle Analysis:
-
Tree Shaking:
- Remove unused code
- Optimize imports
- Dead code elimination
Build Metrics
- Bundle Size: Target < 500KB for main bundle
- Load Time: < 3 seconds for initial load
- Cache Efficiency: Long-term caching for vendor chunks
- Compression: Gzip compression for all assets
Deployment Integration
Vercel Deployment
CI/CD Pipeline
Troubleshooting
Common Build Issues
-
TypeScript Errors:
-
Linting Errors:
-
Build Failures:
- Check environment variables
- Verify dependencies
- Check for circular dependencies
-
Performance Issues:
- Analyze bundle size
- Check for large dependencies
- Optimize imports
Debug Build Process
Related Documentation
- Package Configuration - Dependencies and scripts
- Environment Configuration - Environment variables
- TypeScript Configuration - TypeScript setup
- Deployment Guide - Production deployment