Saya punya aplikasi sederhana, diinisialisasi oleh angular-cli
.
Ini menampilkan beberapa halaman relatif terhadap 3 rute. Saya memiliki 3 komponen. Pada salah satu halaman ini saya menggunakan lodash
dan modul HTTP 2 Sudut untuk mendapatkan beberapa data (menggunakan RxJS Observable
, map
dan subscribe
). Saya menampilkan elemen-elemen ini menggunakan sederhana *ngFor
.
Tapi, meskipun faktanya aplikasi saya sangat sederhana, saya mendapatkan paket dan peta paket besar (menurut saya). Saya tidak berbicara tentang versi gzip tetapi ukuran sebelum gzipping. Pertanyaan ini hanyalah penyelidikan rekomendasi umum.
Beberapa hasil tes:
ng membangun
Hash: 8efac7d6208adb8641c1 Waktu: 10129ms chunk {0} main.bundle.js, main.bundle.map (main) 18,7 kB {3} [awal] [diterjemahkan]
chunk {1} styles.bundle.css, styles.bundle.map, styles.bundle.map (styles) 155 kB {4} [awal] [dirender]
chunk {2} scripts.bundle.js, scripts.bundle.map (scripts) 128 kB {4} [awal] [diberikan]
chunk {3} vendor.bundle.js, vendor.bundle.map (vendor) 3.96 MB [awal] [dirender]
chunk {4} inline.bundle.js, inline.bundle.map (inline) 0 byte [entri] [diterjemahkan]
Tunggu: Paket bundel vendor 10Mb untuk aplikasi sederhana seperti itu?
ng build --prod
Hash: 09a5f095e33b2980e7cc Waktu: 23455ms chunk {0} main.6273b0f04a07a1c2ad6c.bundle.js, main.6273b0f04a07a1c2ad6c.bundle.map (utama) 18,3 kB {rangkuman awal]
chunk {1} styles.bfdaa4d8a4eb2d0cb019.bundle.css, styles.bfdaa4d8a4eb2d0cb019.bundle.map, styles.bfdaa4d8a4eb2d0cb019.bundle.map (styles) [rangkuman awal {rujukan] [rujukan} [rujukan] [rujukan} [rujukan] [rujukan} [rujukan] [rujukan}]
chunk {2} scripts.c5b720a078e5464ec211.bundle.js, scripts.c5b720a078e5464ec211.bundle.map (skrip) 128 kB {4} [awal] [diberikan]
chunk {3} vendor.07af2467307e17d85438.bundle.js, vendor.07af2467307e17d85438.bundle.map (vendor) 3,96 MB [awal] [diberikan]
chunk {4} inline.a345391d459797f81820.bundle.js, inline.a345391d459797f81820.bundle.map (inline) 0 byte [entri] [entri] [diterjemahkan]
Tunggu lagi: ukuran bundel vendor serupa untuk produk?
ng build --prod --aot
Hash: 517e4425ff872bbe3e5b Waktu: 22856ms chunk {0} main.95eadabace554e3c2b43.bundle.js, main.95eadabace554e3c2b43.bundle.map (main) 130 kB {3} [awal] [diterjemahkan]
chunk {1} styles.e53a388ae1dd2b7f5434.bundle.css, styles.e53a388ae1dd2b7f5434.bundle.map, styles.e53a388ae1dd2b7f5434.bundle.map (styles) 154 kB {4} [awal] [dirender] [dirender]
chunk {2} scripts.e5c2c90547f3168a7564.bundle.js, scripts.e5c2c90547f3168a7564.bundle.map (skrip) 128 kB {4} [awal] [diterjemahkan]
chunk {3} vendor.41a6c1f57136df286f14.bundle.js, vendor.41a6c1f57136df286f14.bundle.map (vendor) 2,75 MB [awal] [dirender]
chunk {4} inline.97c0403c57a46c6a7920.bundle.js, inline.97c0403c57a46c6a7920.bundle.map (inline) 0 byte [entri] [diterjemahkan]
ng build --aot
Hash: 040cc91df4df5ffc3c3f Waktu: 11011ms chunk {0} main.bundle.js, main.bundle.map (utama) 130 kB {3} [awal] [diterjemahkan]
chunk {1} styles.bundle.css, styles.bundle.map, styles.bundle.map (styles) 155 kB {4} [awal] [dirender]
chunk {2} scripts.bundle.js, scripts.bundle.map (scripts) 128 kB {4} [awal] [diberikan]
chunk {3} vendor.bundle.js, vendor.bundle.map (vendor) 2.75 MB [awal] [dirender]
chunk {4} inline.bundle.js, inline.bundle.map (inline) 0 byte [entri] [diterjemahkan]
Jadi beberapa pertanyaan untuk menggunakan aplikasi saya di prod:
- Mengapa bundel vendor begitu besar?
- Apakah pohon bergetar dengan benar digunakan oleh
angular-cli
? - Bagaimana cara meningkatkan ukuran bundel ini?
- Apakah file .map diperlukan?
- Apakah fitur pengujian termasuk dalam bundel? Saya tidak membutuhkan mereka di prod.
- Pertanyaan umum: alat apa yang direkomendasikan untuk mengemas prod? Mungkin
angular-cli
(menggunakan Webpack di latar belakang) bukan pilihan terbaik? Bisakah kita berbuat lebih baik?
Saya mencari banyak diskusi tentang Stack Overflow, tetapi saya belum menemukan pertanyaan umum.