2012-01-11 4 views
32

के साथ कई फ़ाइलों को छोटा करें क्या UglifyJS के साथ कई फ़ाइलों को संपीड़ित करना संभव है?UglifyJS

कुछ की तरह ...

uglifyjs -o app.build.js appfile1.js appfile2.js ... 

इसके अलावा, मैं विंडोज कमान में NodeJS के माध्यम से तोड़कर बिगाड़ना चला रहा हूँ के लिए प्रेरित करें

उत्तर

48

वास्तव में आप क्या (अपने सिर्फ 1 फ़ाइल सोच में चाल) करना चाहते हैं तो बस है बिल्ली यह

लिनक्स

cat file1.js file2.js file3.js file4.js | uglifyjs -o files.min.js 

विंडोज(untested)

type file1.js file2.js > uglifyjs -o files.min.js 

या

type file1.js file2.js > merged.files.js 
uglifyjs -o merged.files.js 
+0

मान लीजिए कि मुझे बताया जाना चाहिए कि मैं विंडोज़ पर हूं ... :( – jcreamer898

+0

एर ... यह तब काम कर सकता है (निश्चित रूप से मेरे द्वारा परीक्षण नहीं किया गया है) http://stackoverflow.com/a/60254/158014 – Jakub

+0

प्राप्त करना जारी रखें उस पर एक वाक्यविन्यास त्रुटि, लेकिन मैं इसके साथ गड़बड़ रखूंगा ... – jcreamer898

35

इस सवाल के भविष्य के पाठकों के लिए, डब्ल्यू/UglifyJS2, यह अब तुच्छ है ...

uglifyjs file1.js file2.js -o foo.min.js 

स्रोत मानचित्रों के लिए भी समर्थन है।

uglifyjs file1.js file2.js -o foo.min.js --source-map foo.min.js.map --source-map-root http://foo.com/src 
+3

आप सभी जेएस फाइलों को गठबंधन करने के लिए * का उपयोग भी कर सकते हैं निर्देशिका को एक फ़ाइल में "' uglifyjs -o test.js/someTestDir/* 'दस्तावेज़ कहते हैं कि विकल्प पहले होना चाहिए, और फाइलें अंतिम रहेंगी; लेकिन ये उदाहरण विपरीत दिखाते हैं। Https://github.com/mishoo/UglifyJS उद्धृत करने के लिए "फ़ाइल नाम अंतिम तर्क होना चाहिए और उस फ़ाइल का नाम होना चाहिए जिससे जावास्क्रिप्ट कोड पढ़ना है" क्या इससे कोई फर्क नहीं पड़ता है, या यह जवाब गलत है? – JeffryHouser

+2

बस मेरी पिछली टिप्पणी में स्पष्टीकरण जोड़ने के लिए, * चाल गिट बैश के लिए विशिष्ट प्रतीत होती है और यह UglifyJS से असंबंधित है। – JeffryHouser

+0

स्रोत मानचित्र कैसे काम करते हैं? – insign

3

सं

लेकिन अन्य उत्तर राज्यों, यह मौजूदा रूप में, यह उन सभी को एक ही उत्पादन में जोड़ सकते हैं। जो पूछा जा रहा है उतना ही नहीं है।

यदि आपके पास एक दर्जन फाइलें हैं जो व्यक्तिगत मॉड्यूल हैं। आप उन्हें एक ही समय में सभी को गुमराह नहीं कर सकते हैं। जो वांछनीय है क्योंकि आप हर समय नोडज शुरू करने के लिए बिल्ड समय बचाते हैं।

yuicompressor यह अनुमति देता है, और प्रत्येक व्यक्तिगत फ़ाइल के लिए एक जेवीएम शुरू करने से बचाया गया समय बहुत अच्छा है। और अंत में आप फ़ाइल 1-min.js, file2-min.js, आदि प्राप्त करते हैं ... एक समेकित ब्लॉब नहीं।

उलझन के साथ यदि आप आउटपुट को जोड़ना नहीं चाहते हैं तो आपको प्रति फ़ाइल एक प्रक्रिया को उभारा होगा।