2016-12-31 7 views
5

कोणीय CLI के एक नंबर प्रदर्शन आदेश न्यूनतम किया गया बुनियादी परियोजना का निर्माण करने में आदेश:कोणीय सीएलआई - <ng serve><ng build> से बेहतर बंडल क्यों करता है?

ng new project 
cd project 
ng build --prod 

... एक परिणाम के रूप में, मैं बंडलों की संख्या के साथ उत्पन्न dist फ़ोल्डर मिलता है। सबसे बड़ा एक vendor.[hash].js कहा जाता है और इसका आकार लगभग 855kB है।

हालांकि

, अगर मैं ng serve --prod बजाय करते हैं:

ng new project 
cd project 
ng serve --prod 

... मैं के बारे में 300kB क्रोम कंसोल का उपयोग कर रहा है localhost:4200 विक्रेता के बंडल वजन से भरी हुई देख सकते हैं।

ऐसा क्यों होता है? ng serve के बिना दूसरे परिणाम को प्राप्त करने का कोई तरीका है, लेकिन ng build के साथ?

+0

महान सवाल है, तो यह वास्तव में इतना है (मैं इसे करने की कोशिश करने जा रहा हूँ)। क्या यह संभव है कि एनजी सेवा मेमोरी में कुछ रखती है या अन्यथा पूरी तरह से सभी संपत्तियों को बंडल नहीं करती है, उदा। पूरी तरह से तैनाती वितरण सेट बनाने के लिए -प्रॉड के लिए वेबपैक आउटपुट अलग होगा? मुझे दिलचस्पी है क्योंकि जब मैं सीधे ईएस 6 और वेबपैक का उपयोग करता हूं, और एक बिल्ड करता हूं, तो मुझे बहुत कम जटिल वितरण बंडल मिलते हैं जो तेजी से लोड होते हैं। मैं सीएलआई वितरण आउटपुट के अर्ध-संदिग्ध बन गया हूं (शायद वेबपैक के बजाय क्ली कॉन्फ़िगरेशन के माध्यम से उन्हें ठीक से कॉन्फ़िगर करने के तरीके के बारे में ज्ञान की कमी के कारण)। –

+0

मैंने कोशिश की, ऐसा लगता है कि कुछ संपत्ति कैश हो रही है। –

+0

@TimConsolazio, अगर वेबपैक का उपयोग स्पष्ट रूप से [कोणीय दस्तावेज़] (https://angular.io/docs/ts/latest/guide/webpack.html) में वर्णित किया गया है तो आउटपुट 'ng build - प्रोड 'एक। बस ध्यान दिया है कि 'cmd' आउटपुट थोड़ा अलग हैं,' ng serv' output अन्य – WildDev

उत्तर

3

जैसा कि टिप्पणियों के माध्यम से खोजा गया था, आपने बस दो अलग-अलग मानों की तुलना की: फ़ाइल सिस्टम में गैर-gzipped फ़ाइल का आकार, और ब्राउज़र कंसोल में gzipped डाउनलोड का आकार।

0

मैं अपने वातावरण में इस परीक्षण किया:।

एनजी निर्माण --prod = मुख्य [हैश] .js = 792KB।

बीजी सेवा --prod = main। [हैश] .js = 863KB।

$ ng --version 
angular-cli: 1.0.0-beta.19-3 
node: 7.0.0 
os: win32 x64 

एनजी एक कैश फ़ाइल को थोड़ा छोटा उत्पन्न करता है, क्योंकि अस्थायी है।

अपनी एनजी क्ली अपडेट करें और फिर से परीक्षण करें।

+0

सभी उपकरणों को अद्यतन किया है। एनपीएम '4.0.5', नोड' 7.3.0', कोणीय-क्ली '1.0.0-बीटा.24' है। लेकिन सबकुछ अभी भी वही है। जैसे ही ऐप उगाया जाता है, वज़न अंतर बहुत बड़ा लगता है, बस मूल परियोजना में सामग्री 2 स्थापित किया है। वजन अंतर अब 1 एमबी से अधिक है, '280kB' बनाम' 1300kB' एक – WildDev

+0

इसके अस्थायी होने के बावजूद, सब कुछ इस तरह से काम करता है जैसे कि यह नहीं है। बहुत अजीब – WildDev

1

यह नहीं है कि कौन सा बेहतर है।

यह सब के बारे में जब निर्माण या की सेवा उपयोग करने के लिए है।

  1. निर्माण तैनाती उद्देश्य के लिए प्रयोग किया जाता है और की सेवा विकास के उद्देश्य के लिए प्रयोग किया जाता है।
  2. बिल्ड संकलित आउटपुट को/dist निर्देशिका में उत्पन्न करता है और तेजी से विकास अनुभव के लिए स्मृति से कलाकृतियों का निर्माण करता है।

रेफरी: build vs. serve