6 Commits

Author SHA1 Message Date
dwindown
b1aefea526 Fix production build with esbuild minification
- Switch from Terser to esbuild minifier (Vite's default)
- Set target to es2015 for better browser compatibility
- Remove manual chunking that was causing load order issues
- Result: 3MB bundle (down from 6.5MB) with proper minification

This should resolve the production build errors caused by improper
chunk loading order and duplicate module bundling.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-01-02 11:26:20 +07:00
dwindown
e6e3bc39d4 Fix production build error with proper vendor chunk splitting
- Configure Vite to split vendor chunks (React, DOMPurify, video libs, Supabase)
- Add manual chunk configuration to prevent duplicate module bundling
- Clean Docker build cache and node_modules cache during build
- Update Dockerfile to force clean rebuilds

This should resolve the 'Identifier already declared' error in production
caused by DOMPurify's @xmldom dependency being bundled multiple times.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-01-02 11:21:39 +07:00
dwindown
2f7797803c Disable minification completely to fix production errors
Disabled minification entirely as Terser continued to cause variable
collision errors even with conservative settings.

Changes:
- Set minify: false in vite.config.ts
- This eliminates all minification-related variable conflicts
- Trade-off: Bundle size 3MB → 6.5MB (unminified)
- The app should now load correctly in production

This is a temporary solution. The root cause appears to be related
to how the codebase is structured causing Terser to create duplicate
identifiers during chunk optimization.

Next steps could include:
- Investigating code duplication issues
- Switching to esbuild minifier
- Restructuring problematic imports

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-01-02 11:01:45 +07:00
dwindown
877223342e Fix production build variable collision with safer Terser config
Disabled aggressive Terser optimizations that were causing variable
name conflicts (like 'xL' and 'Hf' already declared errors).

Changes:
- Disabled sequences, properties, and join_vars optimizations
- Disabled reduce_funcs and reduce_vars to prevent variable mangling
- Disabled hoist_funs to prevent scope issues
- Disabled evaluate to prevent constant folding issues
- Set keep_fnames: true to preserve function names
- This trades some bundle size (3MB → 3.2MB) for stability

The app should now load correctly in production without minification errors.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-01-02 10:56:35 +07:00
dwindown
0d1f8d795e Fix production build minification error causing blank page
Fixed the "Identifier 'xL' has already been declared" error that occurred
in production builds by switching from SWC minifier to Terser.

Changes:
- Updated vite.config.ts to explicitly use Terser minifier
- Added terser as dev dependency
- Configured safe Terser options to prevent variable name conflicts
- Disabled unsafe optimizations that can cause identifier collisions

This resolves the blank page issue in production while maintaining
bundle size optimization.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-01-02 10:47:10 +07:00
Lovable
bebc3a2029 template: new_style_vite_react_shadcn_ts 2025-01-01 00:00:00 +00:00