Build Process
Paginator uses Angular CLI for building production-ready applications with server-side rendering (SSR) support.Production Build
Building for Production
Generate an optimized production build:- Compiles TypeScript to JavaScript
- Bundles and minifies code
- Optimizes assets
- Generates server and client bundles (SSR)
- Applies production environment variables
- Enables output hashing for cache busting
Build Output
Production builds are generated in thedist/paginator/ directory:
dist/paginator (configured in angular.json)
Build Configuration
Production Configuration
Production builds include the following optimizations (fromangular.json):
- Bundle Size Budgets: Warnings at 500kB, errors at 1MB
- Style Budgets: Component styles limited to 8kB
- Output Hashing: All files hashed for cache invalidation
Development Build
For development builds with watch mode:angular.json):
- No optimization
- Source maps enabled
- License extraction disabled
- Environment file replacement:
environment.development.ts
Server-Side Rendering (SSR)
Paginator includes full SSR support using@angular/ssr (v19.1.8).
SSR Configuration
SSR is configured inangular.json:
src/main.server.ts: Server-side application entry pointsrc/server.ts: Express server configurationsrc/app/app.config.server.ts: Server-specific providers
Running SSR Locally
After building, serve the SSR application:Environment Configuration
Environment Files
Environment-specific settings are managed in:- Production:
src/environments/environment.ts - Development:
src/environments/environment.development.ts
File Replacement
In development builds, the production environment file is replaced:Vercel Deployment
The production application is deployed on Vercel with automatic deployments.Live Demo
Visit the production application: URL: https://paginator-six.vercel.app/Vercel Configuration
Vercel automatically:- Detects Angular projects
- Runs
npm run build - Deploys the SSR application
- Configures serverless functions for API endpoints
- Provides automatic HTTPS
- Enables CDN distribution
Deployment Workflow
- Push to Repository: Commit changes to the main branch
- Automatic Build: Vercel detects changes and triggers a build
- Deploy: New version is automatically deployed
- Preview URLs: Pull requests get preview deployments
Dependencies
Production Dependencies
Key production packages (frompackage.json):
Dev Dependencies
Build tools:Assets and Styles
Asset Configuration
Static assets included in builds (fromangular.json):
Global Styles
Styles included in production builds:Scripts
Third-party scripts:Build Optimization
Tree Shaking
Unused code is automatically removed during production builds.Minification
JavaScript and CSS are minified in production builds.Code Splitting
Angular automatically splits code for optimal loading:- Main application bundle
- Polyfills bundle
- Lazy-loaded feature modules
Pre-Deployment Checklist
- Run Tests:
npm test -- --no-watch --code-coverage - Check Coverage: Ensure coverage meets standards (90%+)
- Build Locally:
npm run build - Check Bundle Size: Review build output for size warnings
- Test SSR:
npm run serve:ssr:Paginator - Environment Variables: Verify production environment settings
- Commit Changes: Push to repository for automatic deployment
Troubleshooting
Build Errors
If the build fails:- Clear the Angular cache:
rm -rf .angular - Reinstall dependencies:
rm -rf node_modules && npm install - Check TypeScript errors:
ng build
Bundle Size Exceeded
If bundle size exceeds limits:- Review budget configuration in
angular.json - Analyze bundle with
ng build --stats-json - Use source-map-explorer to identify large dependencies
- Consider lazy loading for large features
SSR Issues
If SSR isn’t working:- Check
server.tsconfiguration - Verify
app.config.server.tsproviders - Ensure server-side compatible code (no
windowordocumentreferences)