패키징에 사용되는 배치 파일 코드는 다음과 같습니다.
@echo off
title Builder - ..
색상 03
REM ================================ == =
REM jsbuilder 베타 버전
REM
REM ================================ == ===
SETLOCAL ENABLEEXTENSIONS
echo.
REM 필터 파일 접미사, 콤보 js 파일만
"%~x1" NEQ ".js"(
echo .
echo **** JS 파일을 선택해주세요
echo.
goto End
)
REM NODE_PATH 확인
"%NODE_PATH%" == " " NoNodePath로 이동
존재하지 않는 경우 "%NODE_PATH%node.exe" NoNodePath로 이동
RESULT_FILE=%~n1-combo%~x1
:ZIP_CHOICE
설정
echo 병합된 js 파일을 [압축]할지 선택하시겠습니까?
set input=
set /p input= -^> 선택하세요(y/n):
if /i "%input %" ==="n" UNZIP으로 이동
if /i "%input%"=="y" ZIP으로 이동
REM이 빌드 병합 파일 호출
:UNZIP
"%NODE_PATH %node.exe" "%~dp0build.js" --unzip "%~n1%~x1" > "%RESULT_FILE%"
echo.
echo **** ~O(∩_∩) O~ 【 병합 ] 성공****
echo.
goto End
REM이 build를 호출하여 파일을 병합하고 압축합니다
:ZIP
"%NODE_PATH% node.exe" " %~dp0build.js" "%~n1%~x1" > "%RESULT_FILE%"
echo.
echo **** ~O(∩_∩)O~ [병합 및 압축] 성공* ***
echo.
goto End
:NoNodePath
echo.
echo **** NodeJS를 먼저 설치하고 NODE_PATH 환경 변수를 설정하세요* ***
에코.
:끝
ENDLOCAL
일시 중지
패키징에 사용된 build.js 코드는 다음과 같습니다.
//구성 로드
require( './ config.js');
//사용된 모듈
var FS = require('fs'),
PATH = require('path'),
jscombo = require ( './tool/jscombo'),
Util = require('util');
//매개변수 가져오기
var args = process.argv;
args = [ ].slice.call(args,2);
var opts = {};//Configuration
var curPath, rootPath = curPath = process.cwd();
/ / config.js의 상대 경로 설정에 따라 rootPath
if(typeofrelativePath!=='undefine'){
rootPath = PATH.join(rootPath,relativePath);
}
var filename;//처리할 파일 이름
//처리 매개변수
out: while(args.length){
var v = args.shift ();
switch(v){
case '-uz':
case '--unzip':
//콤보 후 압축
opts.unzip = true;
break;
기본값:
filename = v;
break out;
}
}
// var filePath = PATH.join(rootPath,filename) ;
// 압축할 js 파일 경로를 루트 경로에 상대적인 경로로 변환
var rPath = PATH.relative(rootPath,PATH.join(curPath,filename));
var str = jscombo (rPath, rootPath, opts);
var fileout = process.stdout;
fileout.write(str);