Przy budowaniu projektu Angularowego można natrafić na poniższy błąd:
Application bundle generation complete. [28.317 seconds]
▲ [WARNING] bundle initial exceeded maximum budget. Budget 2.00 MB was not met by 1.89 MB with a total of 3.89 MB.
Rozpoczynamy śledztwo od zbudowania aplikacji z flagą statsJson. Ustawiamy ją w angular.json/project.json lub uruchamiamy z nią build.
Po zbudowaniu aplikacji w ten sposób w katalogu wynikowym pojawi się dodatkowy wygenerowany plik - stats.json.
W zależności od tego, czy używamy esbuild, czy webpack, należy użyć odpowiedniego narzędzia:
esbuild-visualizer
webpack-bundle-analyzer
Po otwarciu pliku można zobaczyć poniższy ekran:
Przyjrzyjmy się w takim razie plikowi, który zajmuje sporo miejsca. W naszym przypadku będzie to lodash.js. Przed zmianami wyglądał tak:
Jest to spowodowane tym, że przez użycie niepoprawnego importu w plikach importowana jest cała biblioteka, co powoduje załadowanie całej zależności.