2011-09-22 2 views
6

저는 YUI Compressor를 사용하여 여러 개의 JS 파일을 압축하려고합니다.YUIcompressor로 여러 개의 JavaScript 파일 압축하기?

나는 구문이 잘못되었다고 생각합니다. at_으로 시작하는 디렉토리의 모든 파일을 압축하려고합니다. 그러나 YUI Compressor가 실행되면 YUI Compressor는 압축 된 버전의 파일 하나만을 출력에 배치합니다.

구체적으로 말하면 세 개의 파일 (at_1.js, at_2.js 및 at_3.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_min.js

에서 세 가지의 js 파일의 압축 출력을 싶습니다 at_1.js. 내가 도대체 ​​뭘 잘못하고있는 겁니까?

답변

5

Windows를 사용하는 경우 YUI Compressor for .Net을 사용하면됩니다.

또는 간단한 명령으로 압축하기 전에 파일을 결합 : 나는 yuicompressor 노드 JS를 사용하여 여러 자바 스크립트 파일을 압축 할 수있는 작은 프로그램을 작성했습니다

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

.

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); 
관련 문제