2011-09-22 11 views
6

मैं वाईयूआई कंप्रेसर का उपयोग कर कई जेएस फाइलों को संपीड़ित करने की कोशिश कर रहा हूं।YUIcompressor के साथ एकाधिक जावास्क्रिप्ट फ़ाइलों को संपीड़ित करना?

मुझे लगता है कि मुझे वाक्यविन्यास गलत हो रहा है। मैं at_ से शुरू होने वाली निर्देशिका में सभी फ़ाइलों को संपीड़ित करना चाहता हूं। हालांकि, जब वाईयूआई कंप्रेसर चलता है, तो मुझे लगता है कि वाईयूआई कंप्रेसर ने आउटपुट में केवल एक फ़ाइल का संपीड़ित संस्करण रखा है।

विशिष्ट होने के लिए, मान लीजिए कि मेरे पास तीन फाइलें हैं: at_1.js, at_2.js, और at_3.js। मैं at_min.js

में सभी तीन js फ़ाइलों का संक्षिप्त आउटपुट चाहते मैं निम्न सिंटैक्स का उपयोग कर रहा हैं: जब मैं at_min.js खोल

java -jar c:\Tools\yuicompressor-2.4.2.jar --type js --charset utf-8 -o c:\temp\at_min.js c:\temp\scripts\at_* 

, मैं का ही संकुचित सामग्री खोजने के at_1.js। मैं क्या गलत कर रहा हूं?

उत्तर

5

यदि आप विंडोज का उपयोग कर रहे हैं तो आप ऐसा करने के लिए YUI Compressor for .Net का उपयोग कर सकते हैं।

या एक सरल कमांड के साथ संपीड़ित करने से पहले फ़ाइलों के संयोजन:

copy /b at_1.js+at_2.js+at_3.js at_combined.js 
java -jar c:\Tools\yuicompressor-2.4.2.jar --type js --charset utf-8 -o at_min.js at_combined.js 
+5

यूनिक्स के लिए, 'cat src1 src2 src3> dest' का उपयोग करें –

0

मैं yuicompressor और नोड js का उपयोग कर कई जावास्क्रिप्ट फ़ाइलें संपीड़ित करने के लिए एक छोटा सा कार्यक्रम में लिखा है।

var compressor = require('yuicompressor'); 

//Compressor Options: 
var compressorOptions = { 

charset: 'utf8', 
type: 'js', 
nomunge: false 
} 

/* List of files and file path. Just replace the file names and path with yours */ 
    var file = [{ 
    "path": "assets/www/modules/eApp/controllers/", 
    "type": "js", 
    "name": ["BuyOnlineController", "CustomerDetailsController", "DashboardController", "DashboardListingController", "DocumentUploadController", "HomeController", "KYCDetailsController", "PaymentAcknowledgementController", "PaymentController", "ProductListingController", "ReviewAndAcceptanceController"] 
}, 
{ 
    "path": "assets/www/modules/login/controllers/", 
    "type": "js", 
    "name": ["EappLoginController", "InboxController", "LandingController", "LoginController", "MenuController", "MyAccountController", "SyncForEappController"] 
}, 
{ 
    "path": "assets/www/lib/vendor/general/", 
    "type": "js", 
    "name": ["overlays"] 
}]; 

function minify(i, j){ 
    i = (i == undefined) ? 0 : i; 
    j = (j == undefined) ? 0 : j; 
    filePath = file[i].path; 
    fileType = file[i].type; 
    name = file[i].name[j]; 
    fileName = filePath+name+"."+fileType; 
    minifiedFileName = filePath+name+".min."+fileType; 

    if(j == file[i].name.length - 1){ 
     i += 1; 
     j = 0; 
    } 
    else 
     j += 1; 

    compressor.compress(fileName, compressorOptions, function(err, data, extra) { 
     var fs = require('fs'); 
     fs.writeFile(minifiedFileName, data, function(err) { 
      if(err) { 
       console.log(err); 
      } else { 
       console.log("The file "+minifiedFileName+" was saved successfully!"); 
       if(i != file.length) 
        minify(i, j); 

      } 
     }); 
    }); 


} 

minify(0,0); 
संबंधित मुद्दे