2013-03-16 4 views
6

मैं जावास्क्रिप्ट फ़ाइलों का एक समूह जोड़ने के लिए UglifyJS 2 का उपयोग कर रहा हूं (बहुत अधिक नहीं, लगभग 5 से 10)। यह प्रक्रिया UglifyJS की डिफ़ॉल्ट सेटिंग्स का उपयोग करके Node.js के भीतर से चलायी जाती है।UglifyJS 2 की खनन प्रक्रिया को कैसे गति दें?

फ़ाइलें मूल रूप से Requ.js, jQuery, Backbone.js, Backbone.js Marionette, Moment.js, और कुछ अतिरिक्त (छोटे हैं)) सहायक फाइलें, सभी असम्पीडित (यानी विकास) संस्करणों में।

समस्या यह है कि इस प्रक्रिया में लगभग 10 सेकंड लगते हैं।

मैं

{ compress: false } 
एक विकल्प के रूप

से अधिक पूरी तरह से minification अक्षम करते हैं सौंपने के द्वारा, यह बहुत तेजी से है, लेकिन यह अभी भी लगभग 2 सेकंड लेता है।

प्रश्न # 1: क्या यह सामान्य है कि UglifyJS 2 कुछ फ़ाइलों के लिए भी लंबे समय तक लेता है? या मैं शायद कुछ गलत कर रहा हूँ?

प्रश्न # 2: UglifyJS 2 के सभी उपयोगी विकल्पों को अक्षम किए बिना, मैं इस प्रक्रिया को कैसे बढ़ा सकता हूं?

+0

हमारे पास आपकी फ़ाइलों के आकार के बारे में कोई जानकारी नहीं है। मेरे पास एक जेएस प्रोजेक्ट है जो संपीड़ित करने में लगभग 7-8 सेकंड लगते हैं। परियोजना लगभग 7 फाइलें है, उनमें से प्रत्येक 400-500 लाइनें है। – Adi

+0

मैंने अपना प्रश्न अपडेट कर लिया है, लेकिन आपकी टिप्पणी पहले ही बताती है कि मेरे परिदृश्य के लिए कई सेकंड लेना सामान्य लगता है। धन्यवाद :-)! –

+0

आप इन फ़ाइलों को हर अनुरोध पर छोटा नहीं कर रहे हैं, है ना? – Mchl

उत्तर

7

यह असामान्य नहीं है कि कई बड़ी फ़ाइलों को संपीड़ित करने के लिए मिनीफ़ीयर कुछ सेकंड लेते हैं। आपके मामले में 8-12 सेकंड ठीक है (एकाधिक बड़े पुस्तकालय)।

हालांकि, मैं आपको इन पुस्तकालयों को स्वयं संकुचित न करने की सलाह देता हूं। उनमें से ज्यादातर उनके पीछे डेवलपर्स की एक टीम, जो वास्तव में जानते हैं कि वे क्या कर रहे हैं, मैं स्रोत से न्यूनतम किया गया संस्करण डाउनलोड करने की अनुशंसा करते हैं और के रूप में सरल रूप में

copy *.min.js allLibraries.js 

या

cp *.min.js allLibraries.js 

नोट है : सुनिश्चित करें कि आप सही क्रम में संयोजित हैं, इसका आमतौर पर The main libraries -> The plugins -> Your code का अर्थ है।

तेजी से बढ़ने के लिए, मजबूत संपीड़न जैसी शांत सुविधाओं को अक्षम करने के अलावा, आप कुछ भी नहीं कर सकते हैं।

+0

तो इसका मतलब है, minified संस्करण प्राप्त करें, केवल एक उपकरण का उपयोग कर अपनी खुद की फाइलों को संपीड़ित करें जैसे Uglify JS, और फिर उन्हें संक्षिप्त करें, है ना? –

+1

अच्छा, ईमानदार होने के लिए, यह _I_ करता है। वहां कुछ राय हो सकती हैं जो अन्यथा कहती हैं। – Adi

+5

हे डाउनवॉटर, कृपया मुझे अपना जवाब सुधारने में मदद मिलेगी? कृपया मुझे बताएं कि मुझे क्या गलत हुआ है, इसलिए मैं इसे सही कर सकता हूं। – Adi

11

यदि आप संपीड़ित अप्रयुक्त विकल्प को गलत पर सेट करते हैं, तो इसे थोड़ा तेज करना चाहिए। मुझे बस 11sec से 5.5sec तक मिला है।

{ 
     compress: { 
      unused: false 
     } 
    } 

इसके साथ 2k अंतर से कम।

+0

अच्छा लगता है, मेरा 28 से 8 तक चला गया। फ़ाइल आकार को कितना सहेजा गया था, इसकी समीक्षा करके, यह अप्रयुक्त कोड को हटाने के लिए मुझे लगभग 1kb (लगभग 1.3 एमबी फ़ाइल पर) बचाया गया (मुझे बहुत अधिक उम्मीद होगी)। मैं 20s गति सुधार ले जाऊंगा! – ryanm

+3

यह स्वीकार्य उत्तर होना चाहिए। गति सुधार विशाल है – woens

+0

@woens यह केवल मामले के आधार पर एक मामले पर काम करना चाहिए। जैसा कि, आपकी परियोजना में शामिल करने के लिए आपको कितने पुस्तकालयों की आवश्यकता है, इस पर अंतर 1kb से बड़ा हो सकता है। – dosaki

संबंधित मुद्दे