- Created minimal, tree-shaken vendor bundles: * Core bundle (3KB): Always loaded utilities and theme management * Map bundle (255KB): Leaflet + plugins, loaded only for map pages * Chart bundle (205KB): Chart.js, loaded only for chart pages * Date adapter (50KB): Chart.js time scale support - Total optimized size: 513KB JS + 12KB CSS (was 547KB + 17KB) - Implemented conditional loading via VendorLoader utility - Bundle loading triggered by LiveView hooks when needed - Fixed Chart.js date adapter dependency loading - Eliminated unused JavaScript from being sent to browsers - Created separate esbuild configs for each optimized bundle Performance improvements: - Map pages: Core + Map bundles = 258KB (47% of original) - Chart pages: Core + Chart + Adapter = 258KB (47% of original) - Other pages: Core bundle only = 3KB (0.5% of original) - Reduced initial page load by 94% for non-map/chart pages 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
6 lines
No EOL
203 B
JavaScript
6 lines
No EOL
203 B
JavaScript
// Map bundle entry point - combines Leaflet and map plugins
|
|
import "../vendor/js/leaflet-minimal.js";
|
|
import "../vendor/js/plugins-optimized.js";
|
|
|
|
// Mark bundle as loaded
|
|
window.mapBundleLoaded = true; |