2016-12-21 16 views
11

Jesteśmy w trakcie ponownego pisania naszego projektu ng1 za pomocą ng2. Nasz projekt ng1 po zbudowaniu ma około 8 MB. Zajmujemy około jednej czwartej czasu w naszym ponownym zapisie do ng2, a my już mamy 14 MB za naszą ng2 build.Dlaczego projekty Angular 2 są tak duże?

Główną różnicę w rozmiarze folderu dist można przypisać do różnych rozmiarów map źródłowych. Oba projekty zawierają mapy źródłowe, ale mapy źródłowe ng2 są znacznie większe. To ma dla mnie sens, ponieważ ng2 ma więcej kart katalogowych, komponenty są oddzielone i tak dalej.

Początkowo to pytanie zostało umieszczone pod numerem pod numerem, ponieważ było za duże, aby odpowiedzieć. Zgadzam się. Ale właśnie dlatego o to pytam. Próbuję zrozumieć wszystkie oferty ng2, które sprawią, że ostateczny produkt ng2 będzie lepszy niż wersja ng1.

Co to jest niektóre z praktycznych podejść/procedur/narzędzi, które możemy zastosować do naszych praktyk programistycznych ng2, aby zachować małe rozmiary i, z kolei, szybkie wrażenia użytkownika?

+1

Czy dołączasz wszystkie pliki źródłowe (w tym pliki TS) do kompilacji? –

+0

@AnthonyC Nie wierzę w to, widzę tylko porcje plików js. Jaki jest najlepszy sposób sprawdzenia, czy są tam pliki ts? – Nik

+1

W zależności od konfiguracji kompilacji, jeśli otworzysz te pliki JS, czy w ostatnim wierszu pojawi się coś w rodzaju '// # sourceMappingURL ='? –

Odpowiedz

6

starałem się kątową 2 na drugi dzień i ja w obliczu tego samego problemu, jak to zrobić, moje vendor.js był 6M i to było proste „Hello World” app ...

Znalazłem następujący post, który bardzo pomógł nam zrozumieć, jak powinniśmy postępować w tej sprawie (na razie): http://blog.mgechev.com/2016/06/26/tree-shaking-angular2-production-build-rollup-javascript/

Używa kilku technik optymalizacyjnych i kompresujących (prekompilacja, drzeworys, minifikacja, pakiet i gzip) w swojej aplikacji 1.5M do zmniejszyć jego rozmiar do zaledwie 50kb.

Sprawdź to, mam nadzieję, że pomoże! :)

+0

good link ravi. Widzę, że przechodzi od 1,4 Mb do 128 Kb po prostu przez minifikację i gziping to. Robimy to zarówno dla ng1, jak i ng2, mimo że różnica w wielkości jest ogromna, dla nas to zawsze było. Rollup i AoT jednak będę musiał zajrzeć i zobaczyć, co możemy tam wykorzystać – Nik

+2

Wcześniej stawiłem czoła temu samemu pytaniu, potem czytałem o AoT, drżeniu drzew, gzipie, minifikacji, wszystkim innym. Znalazłem to repozytorium, https://github.com/qdouble/angular-webpack2-starter. Sprawdź to. Używam tego teraz w różnych wersjach produkcyjnych. – Everett