İle başlatılan basit bir uygulamam var angular-cli
.
3 rotaya göre bazı sayfaları görüntüler. 3 bileşenim var. Bu sayfada ne kullanımının birinde lodash
bazı verileri almak için ve Eğik 2 HTTP modülleri (RxJS kullanarak Observable
ler, map
ve subscribe
). Bu unsurları basit bir *ngFor
.
Ancak, uygulamamın gerçekten basit olmasına rağmen, büyük (bence) bir paket paketi ve haritalar alıyorum. Gzip sürümlerinden bahsetmiyorum ama gzip'den önceki boyut. Bu soru sadece genel bir öneri araştırmasıdır.
Bazı test sonuçları:
ng yapı
Karma: 8efac7d6208adb8641c1 Zaman: 10129ms yığın {0} main.bundle.js, main.bundle.map (ana) 18,7 kB {3} [ilk] [oluşturulmuş]
yığın {1} styles.bundle.css, styles.bundle.map, styles.bundle.map (stiller) 155 kB {4} [ilk] [oluşturulmuş]
yığın {2} scripts.bundle.js, scripts.bundle.map (scripts) 128 kB {4} [ilk] [oluşturulmuş]
yığın {3} vendor.bundle.js, vendor.bundle.map (satıcı) 3,96 MB [ilk] [oluşturulmuş]
yığın {4} inline.bundle.js, inline.bundle.map (satır içi) 0 bayt [giriş] [oluşturulmuş]
Bekleyin: Bu kadar basit bir uygulama için 10Mb satıcı paketi paketi?
ng build --prod
Karma: 09a5f095e33b2980e7cc Zaman: 23455ms yığın {0} main.6273b0f04a07a1c2ad6c.bundle.js, main.6273b0f04a07a1c2ad6c.bundle.map (ana) 18,3 kB {3} [başlangıç] [oluşturulmuş]
chunk {1} styles.bfdaa4d8a4eb2d0cb019.bundle.css, styles.bfdaa4d8a4eb2d0cb019.bundle.map, styles.bfdaa4d8a4eb2d0cb019.bundle.map (styles) 154 kB {4} [ilk] [rendered] [ilk]
yığın {2} scripts.c5b720a078e5464ec211.bundle.js, scripts.c5b720a078e5464ec211.bundle.map (komut dosyaları) 128 kB {4} [ilk] [oluşturulmuş]
yığın {3} vendor.07af2467307e17d85438.bundle.js, vendor.07af2467307e17d85438.bundle.map (satıcı) 3,96 MB [ilk] [oluşturulmuş]
yığın {4} inline.a345391d459797f81820.bundle.js, inline.a345391d459797f81820.bundle.map (satır içi) 0 bayt [giriş] [oluşturulmuş]
Tekrar bekleyin: üretim için bu kadar benzer bir satıcı paketi boyutu mu?
ng build --prod --aot
Karma: 517e4425ff872bbe3e5b Zaman: 22856ms yığın {0} main.95eadabace554e3c2b43.bundle.js, main.95eadabace554e3c2b43.bundle.map (ana) 130 kB {3} [başlangıç] [oluşturulmuş]
yığın {1} styles.e53a388ae1dd2b7f5434.bundle.css, styles.e53a388ae1dd2b7f5434.bundle.map, styles.e53a388ae1dd2b7f5434.bundle.map (styles) 154 kB {4} [ilk] [oluşturulmuş]
yığın {2} scripts.e5c2c90547f3168a7564.bundle.js, scripts.e5c2c90547f3168a7564.bundle.map (komut dosyaları) 128 kB {4} [ilk] [oluşturulmuş]
yığın {3} vendor.41a6c1f57136df286f14.bundle.js, vendor.41a6c1f57136df286f14.bundle.map (satıcı) 2,75 MB [ilk] [oluşturulmuş]
yığın {4} inline.97c0403c57a46c6a7920.bundle.js, inline.97c0403c57a46c6a7920.bundle.map (satır içi) 0 bayt [giriş] [oluşturulmuş]
ng build --aot
Karma: 040cc91df4df5ffc3c3f Zaman: 11011ms yığın {0} main.bundle.js, main.bundle.map (ana) 130 kB {3} [başlangıç] [oluşturulmuş]
yığın {1} styles.bundle.css, styles.bundle.map, styles.bundle.map (stiller) 155 kB {4} [ilk] [oluşturulmuş]
yığın {2} scripts.bundle.js, scripts.bundle.map (scripts) 128 kB {4} [ilk] [oluşturulmuş]
yığın {3} vendor.bundle.js, vendor.bundle.map (satıcı) 2,75 MB [ilk] [oluşturulmuş]
yığın {4} inline.bundle.js, inline.bundle.map (satır içi) 0 bayt [giriş] [oluşturulmuş]
Uygulamamı üretim ortamında dağıtmak için birkaç soru:
- Satıcı paketleri neden bu kadar büyük?
- Ağaç sallama tarafından uygun şekilde kullanılıyor
angular-cli
mu? - Bu paket boyutu nasıl geliştirilir?
- .Map dosyaları gerekli mi?
- Test özellikleri paketlere dahil mi? Onlara üretimde ihtiyacım yok.
- Genel soru: Üretim için paketlenecek önerilen araçlar nelerdir? Belki
angular-cli
(arka planda Webpack kullanmak) en iyi seçenek değildir? Daha iyisini yapabilir miyiz?
Stack Overflow'da birçok tartışmayı araştırdım, ancak genel bir soru bulamadım.