मेरे पास एक साधारण ऐप है, जिसके द्वारा इनिशियलाइज़ किया गया है angular-cli
।
यह 3 मार्गों के सापेक्ष कुछ पृष्ठ प्रदर्शित करता है। मेरे पास 3 घटक हैं। इस पृष्ठ पर मैं lodash
कुछ डेटा प्राप्त करने के लिए (RxJS Observable
s, map
और subscribe
) का उपयोग करने के लिए Angular 2 HTTP मॉड्यूल का उपयोग करता हूं । मैं इन तत्वों को एक सरल का उपयोग करके प्रदर्शित करता हूं *ngFor
।
लेकिन, इस तथ्य के बावजूद कि मेरा ऐप वास्तव में सरल है, मुझे एक विशाल (मेरी राय में) बंडल पैकेज और नक्शे मिलते हैं। मैं gzip संस्करणों के बारे में बात नहीं करता, हालांकि आकार देने से पहले gzip करता हूं। यह सवाल सिर्फ एक सामान्य सिफारिश की जांच है।
कुछ परीक्षण परिणाम:
एनजी निर्माण
हैश: 8efac7d6208adb8641c1 समय: 10129ms chunk {0} main.bundle.js, main.bundle.map (मुख्य) 18.7 kB {3} [प्रारंभिक] [रेंडर]
chunk {1} style.bundle.css, styles.bundle.map, styles.bundle.map (शैलियाँ) 155 kB {4} [आरंभिक] [गाया]
chunk {2} script.bundle.js, script.bundle.map (स्क्रिप्ट) 128 kB {4} [आरंभिक] [रेंडर]
chunk {3} seller.bundle.js, seller.bundle.map (विक्रेता) 3.96 MB [प्रारंभिक] [विज्ञापन]
chunk {4} inline.bundle.js, inline.bundle.map (इनलाइन) 0 बाइट्स [प्रविष्टि] [रेंडर]
प्रतीक्षा करें: इस तरह के एक साधारण ऐप के लिए 10 एमबी विक्रेता बंडल पैकेज?
एनजी बिल्ड --प्रोड
हैश: 09a5f095e33b2980e7cc समय: 23455ms chunk {0} मुख्य.6273b0f04a07a1c2ad6c.bundle.js, मुख्य.63bb0f04a07a1c2ad6c.bundle.map (मुख्य) 18.33 kB
chunk {1} शैलियाँ .bfdaa4d8a4eb2d0cb019.bundle.css, styles.bfdaa4d8a4eb2d0cb019.bundle .map, शैलियाँ .bfdaa4d8a4eb2d0cb019.bundle.map (154)
chunk {2} script.c5b720a078e5464ec211.bundle.js, script.c5b720a078e5464ec211.bundle.map (स्क्रिप्ट) 128 kB {4} [आरंभिक] [रेंडर]
chunk {3} विक्रेता.07af2467307e17d85438.bundle.js, विक्रेता.07af2467307e17d85438.bundle.map (विक्रेता) 3.96 MB [प्रारंभिक] [रेंडर]
chunk {4} inline.a345391d459797f81820.bundle.js, इनलाइन .a345391d459797f81820.bundle.map (इनलाइन) 0 बाइट्स [प्रविष्टि] [रेंडर]
फिर से प्रतीक्षा करें: ठेस के लिए इस तरह के एक समान बंडल आकार?
ng build --prod --aot
हैश: 517e4425ff872bbe3e5b समय: 22856ms चंक {0} मुख्य.95eadabace554e3c2b43.bundle.js, main.95eadable4e3c2b43.bundle.map (मुख्य) 130 kB {3} [प्रारंभिक] [प्रारंभिक]
chunk {1} style.e53a388ae1dd2b7f5434.bundle.css, styles.e53a388ae1dd2b7f5434.bundle.map, शैलियाँ .53a388ae1dd2b7f5434.bundle.map (शैलियाँ) 154 kB {4} {4}
chunk {2} script.e5c2c90547f3168a7564.bundle.js, script.e5c2c90547f3168a7564.bundle.map (स्क्रिप्ट) 128 kB {4} [आरंभिक] [प्रस्तुत]
chunk {3} विक्रेता.41a6c1f57136df286f14.bundle.js, विक्रेता.41a6c1f57136df286f14.bundle.map (विक्रेता) 2.75 एमबी (प्रारंभिक) [रेंडर]
chunk {4} inline.97c0403c57a46c6a7920.bundle.js, इनलाइन.97c0403c57a46c6a7920.bundle.map (इनलाइन) 0 बाइट्स [प्रविष्टि] [रेंडर]
ng build --aot
हैश: 040cc91df4df5ffc3c3f समय: 11011 सेमी चंक {0} main.bundle.js, main.bundle.map (मुख्य) 130 kB {3} [आरंभिक] [रेंडर]
chunk {1} style.bundle.css, styles.bundle.map, styles.bundle.map (शैलियाँ) 155 kB {4} [आरंभिक] [गाया]
chunk {2} script.bundle.js, script.bundle.map (स्क्रिप्ट) 128 kB {4} [आरंभिक] [रेंडर]
chunk {3} seller.bundle.js, seller.bundle.map (विक्रेता) 2.75 MB [प्रारंभिक] [विज्ञापन]
chunk {4} inline.bundle.js, inline.bundle.map (इनलाइन) 0 बाइट्स [प्रविष्टि] [रेंडर]
तो मेरे एप्लिकेशन को ठेस पहुंचाने के लिए कुछ सवाल:
- वेंडर बंडल इतने विशाल क्यों हैं?
- क्या पेड़ को सही तरीके से हिलाना है
angular-cli
? - इस बंडल आकार में सुधार कैसे करें?
- क्या .map फ़ाइलों की आवश्यकता है?
- क्या बंडलों में परीक्षण की विशेषताएं शामिल हैं? मैं उन्हें ठेस की जरूरत नहीं है।
- सामान्य प्रश्न: ठेस के लिए पैक करने के लिए अनुशंसित उपकरण क्या हैं? शायद
angular-cli
(पृष्ठभूमि में वेबपैक का उपयोग करना) सबसे अच्छा विकल्प नहीं है? क्या हम बेहतर कर सकते हैं?
मैंने स्टैक ओवरफ्लो पर कई चर्चाएं कीं, लेकिन मुझे कोई सामान्य सवाल नहीं मिला।