본문 바로가기

etc

JSTools

반응형

  • Java로 작성된 자바스크립트 지원도구입니다.
  • 파일머지와 주석제거, 코드압축과 난독화와 더불어 JSLint 모듈을 제공합니다.
  • ant 나 maven 등의 자동화 빌드를 지원합니다.

설치 및 실행방법 

  • 설치는 따로 없고, 다운로드페이지에서 JSTools.zip 파일을 받아 압축을 풉니다.
  • 도스 커맨트 상에서 아래와 같이 입력합니다.
java -jar JSTools [기능옵션\] [입력파일] [추가옵션]

파일 머지 예)
java -jar JSTools -merge file1.js file2.js output=merged.js

JSLint 

  • JSLint는 자바스크립트로 작성된 모듈을 Java로 실행시키기 위해서 서버 사이드 자바스크립트 엔진(Rhino)을 사용합니다.
  • 서버사이드 자바스크립트 엔진은 JSTools에 포함되어 있습니다.
  • 따라서 실행을 위해서는 JSTools.jar 파일과 /app 폴더위 위치한 자바스크립트 모듈이 필요합니다.
  • 사용법은 다음과 같습니다.
 java -jar [설치폴더위치]/JSTools.jar -jslint [app폴더위치]/run.js file=a.js
 java -jar JSTools.jar -jslint app/run.js file=a.js
  • 별도의 파일 목록을 작성할수있습니다.
  • 주의해야할 문법은 자바스크립트 엔진에서 따로 개행을 처리하지 못하기 때문에 반드시 세미콜론(;)으로 개행을 해주셔야합니다.
 java -jar JSTools.jar -jslint app/run.js list=jslint_list.txt
  • 별도 파일 목록은 다음과 같은 문법이 있습니다.
    1. 골뱅이(@)를 이용해 문자열 변수를 만들수있다.
    2. 골뱅이 변수는 다음과 같이 {%=변수%} 를 사용해 치환할수있다.
    3. 한줄 주석(//)을 지원한다.
    4. 개행문자는 반드시 세미콜론(;)을 사용한다.
// filelist.txt 작성예
@path1="D:/map_workspace/JSTools/samples/js2/";
@path2="D:/map_workspace/JSTools/samples/js/";

{%=path1%}CalculateMileage.js;
{%=path1%}CO2Popup.js;
{%=path1%}FindPathPoint.js;
{%=path2%}FindPointMarkerManager.js;
{%=path2%}ImagePointer.js;

주석 제거 

  • 주석 제거 옵션은 -rmcmt 입니다.
  • 결과 파일(output)옵션을 명시하지 않으면 실행 폴더에 removed.txt 로 결과파일이 생성됩니다.
  • 절대경로를 적지 않으면 항상 실행 경로를 기반으로 결과 파일이 생성됩니다.
java -jar JSTools.jar -rmcmt file.js
java -jar JSTools.jar -rmcmt file.js output=d:\deploy\removed.js

사용자 패턴이 포함된 라인 제거 

  • 패턴 제거 옵션은 -rmprn 입니다.
  • 결과 파일(output)옵션을 명시하지 않으면 실행 폴더에 remove_pattern.txt 로 결과파일이 생성됩니다.
  • 절대경로를 적지 않으면 항상 실행 경로를 기반으로 결과 파일이 생성됩니다.
  • 자바스크립트에 포함된 콘솔(console)을 지울때 유리합니다.
  • 패턴은 정규식만 가능합니다. 정규식은 슬래시(/)와 슬래시(/)사이에 정의합니다.
    java -jar JSTools.jar -rmprn file.js regx=/console./
    java -jar JSTools.jar -rmprn file.js regx=/console./ output=d:\deploy\removed_pattern.js
     

파일 머지 

  • 파일 머지 옵션은 -merge 입니다.
  • 하나로 합칠 파일들을 나열합니다. 파일은 절대경로가 아니면 항상 실행 경로를 기반으로 합니다.
  • output을 명시적으로 지정하지 않으면 실행 경로의 merged.txt 파일로 생성합니다.
java -jar JSTools.jar -merge file1 file2 file3... 		
java -jar JSTools.jar -merge file1 file2 file3 output=mergedfile
  • 별도의 머지 파일 목록을 작성할수있습니다.
java -jar JSTools.jar -merge list=filelist output=mergedfile
  • 별도 파일 목록은 다음과 같은 문법이 있습니다.
    1. 골뱅이(@)를 이용해 문자열 변수를 만들수있다.
    2. 골뱅이 변수는 다음과 같이 {%=변수%} 를 사용해 치환할수있다.
    3. 한줄 주석(//)을 지원한다.
// filelist.txt 작성예
@path1="D:/map_workspace/JSTools/samples/js2/"
@path2="D:/map_workspace/JSTools/samples/js/"

{%=path1%}CalculateMileage.js
{%=path1%}CO2Popup.js
{%=path1%}FindPathPoint.js
{%=path2%}FindPointMarkerManager.js
{%=path2%}ImagePointer.js

파일 압축 및 난독화 

  • 압축 옵션은 -compress 를 사용합니다.
  • YUICompressor 모듈을 사용해 압축과 난독화를 합니다.
  • 압축할 파일의 확장자를 보고, js압축 또는 css압축을 합니다.
  • output은 별도의 출력파일을 지정합니다. 지정하지 않으면 compressed.txt로 결과가 생성됩니다.
java -jar JSTools.jar -compress file.js
java -jar JSTools.jar -compress file.js output=compressed.js
  • 압축과 더불어 난독화를 하려면, with=obfuscate 옵션을 지정합니다.
java -jar JSTools.jar -compress file.js output=compressed.js with=obfuscate
  • 압축하려는 파일의 확장자가 js또는 css 가 아닐경우 명시적으로 압축타입을 지정해야합니다.
java -jar JSTools.jar -compress file output=compressed.js with=obfuscate type=css

ANT 빌드 적용 예시 

<target name="merge_js_files" description="merge js files from file list.">
	<mkdir dir="build"/>
	<echo>Merge MapService Files...</echo>
	<exec executable="java">
		<arg line="-jar" />
		<arg line="-Dfile.encoding=UTF-8 " />
		<arg path="${tools.dir}/JSTools.jar" />
		<arg value="-merge"/>
		<arg value="list=${mapservice.dir}/mapservice.txt"/>
		<arg value="output=${build.dir}/mapservice.js"/>
	</exec>
</target>

개발 SV

RB-1.2.0.zip


반응형

'etc' 카테고리의 다른 글

test  (0) 2012.07.29
test  (0) 2012.07.29
JS tool  (0) 2012.07.19
JSLint  (0) 2012.07.19
twitter.com  (0) 2012.07.06