First-attempt commit3a5c6e184only captured the .gitignore change; the pre-commit hook silently dropped the 343 staged moves/deletes during lint-staged's "no matching task" path. This commit re-applies the intended J1 content on top ofbec75f143(which was pushed in parallel). Uses --no-verify because: - J1 only touches .md/.json/.log/.png/binaries — zero code that would benefit from lint-staged, typecheck, or vitest - The hook demonstrated it corrupts pure-rename commits in this repo - Explicitly authorized by user for this one commit Changes (343 total: 169 deletions + 174 renames): Binaries purged (~167 MB): - veza-backend-api/{server,modern-server,encrypt_oauth_tokens,seed,seed-v2} Generated reports purged: - 9 apps/web/lint_report*.json (~32 MB) - 8 apps/web/tsc_*.{log,txt} + ts_*.log (TS error snapshots) - 3 apps/web/storybook_*.json (1375+ stored errors) - apps/web/{build_errors*,build_output,final_errors}.txt - 70 veza-backend-api/coverage*.out + coverage_groups/ (~4 MB) - 3 veza-backend-api/internal/handlers/*.bak Root cleanup: - 54 audit-*.png (visual regression baselines, ~11 MB) - 9 stale MVP-era scripts (Jan 27, hardcoded v0.101): start_{iteration,mvp,recovery}.sh, test_{mvp_endpoints,protected_endpoints,user_journey}.sh, validate_v0101.sh, verify_logs_setup.sh, gen_hash.py Session docs archived (not deleted — preserved under docs/archive/): - 78 apps/web/*.md → docs/archive/frontend-sessions-2026/ - 43 veza-backend-api/*.md → docs/archive/backend-sessions-2026/ - 53 docs/{RETROSPECTIVE_V,SMOKE_TEST_V,PLAN_V0_,V0_*_RELEASE_SCOPE, AUDIT_,PLAN_ACTION_AUDIT,REMEDIATION_PROGRESS}*.md → docs/archive/v0-history/ README.md and CONTRIBUTING.md preserved in apps/web/ and veza-backend-api/. Note: The .gitignore rules preventing recurrence were already pushed in3a5c6e184and remain in place — this commit does not modify .gitignore. Refs: AUDIT_REPORT.md §11
2.6 KiB
2.6 KiB
Plan d'Optimisation du Bundle Size
🎯 Objectif
Réduire la taille du bundle initial de 20-30% pour améliorer les performances de chargement.
📊 Analyse Actuelle
Dépendances Volumineuses Identifiées
lucide-react: 238 fichiers utilisent cette librairie (imports potentiellement non optimisés)react-router-dom: Utilisé partout@tanstack/react-query: Utilisé globalement@tanstack/react-virtual: Pour VirtualizedListdate-fns: Pour les dateszod: Pour la validationdompurify: Pour la sanitizationhls.js: Pour la lecture vidéoemoji-picker-react: Composant volumineux
Code Splitting Actuel
- ✅ Lazy loading des pages (LazyComponent)
- ⚠️ Pas de manual chunk splitting configuré
- ⚠️ Imports lucide-react non optimisés (imports par défaut au lieu d'imports nommés)
🔧 Optimisations à Appliquer
Phase 1 : Optimisation des Imports (✅ Complétée)
- ✅ Optimiser les imports
lucide-react(tree-shaking) - Déjà optimisé (imports nommés) - ✅ Optimiser les imports
date-fns(imports nommés au lieu de default) - Déjà optimisé - ✅ Vérifier les imports de
react-router-dom- Déjà optimisé
Phase 2 : Code Splitting Amélioré (✅ Complétée)
- ✅ Configurer manual chunk splitting dans vite.config.ts
- Vendor chunks: react, router, tanstack, icons, dates, validation, media
- Feature chunks: player, upload, chat, studio
- ✅ Séparer les vendors (react, react-dom, react-router)
- ✅ Créer des chunks pour les features lourdes (player, editor, charts)
Phase 3 : Optimisation des Dépendances (✅ Complétée)
- ✅ Lazy load des composants lourds
- ✅ EmojiPicker (ChatInput, ChatMessage) - ~200KB économisés
- ✅ react-easy-crop (ImageCropper) - ~100KB économisés
- ⏳ Vérifier si toutes les dépendances sont nécessaires (à faire manuellement)
- ⏳ Optimiser les assets (images, fonts) (à faire manuellement)
Phase 4 : Configuration Build (✅ Complétée)
- ✅ Code splitting manuel configuré dans vite.config.ts
- ✅ Chunks vendors séparés pour meilleur caching
- ✅ Bundle analyzer déjà configuré (rollup-plugin-visualizer)
Phase 4 : Configuration Build
- ⏳ Augmenter chunkSizeWarningLimit si nécessaire
- ⏳ Configurer la compression (gzip, brotli)
- ⏳ Analyser le bundle avec visualizer après optimisations
📈 Métriques Cibles
- Bundle initial: < 500KB (gzipped)
- Chunks individuels: < 200KB chacun
- Réduction totale: 20-30%
🔍 Outils
rollup-plugin-visualizer: Déjà configuré dans vite.config.ts- Analyse après build:
npm run buildpuis ouvrirdist/bundle-analysis.html