From fcfe0f84496c467221f652c1ac3427067adf482e Mon Sep 17 00:00:00 2001 From: bnu Date: Wed, 18 Dec 2013 15:58:29 +0900 Subject: [PATCH] =?UTF-8?q?grunt=20task=20=EC=82=AC=EC=9A=A9=EB=B2=95=20?= =?UTF-8?q?=EC=B6=94=EA=B0=80.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- tools/README.md | 68 +++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 68 insertions(+) diff --git a/tools/README.md b/tools/README.md index e69de29bb..7ad481795 100644 --- a/tools/README.md +++ b/tools/README.md @@ -0,0 +1,68 @@ +# Tools + +## Build +XE패키징을 위해 grunt.js를 이용한 Task로 작성되어 있으며 *nix 환경에서 Node를 구동할 수 있어야 한다. + +### 의존 패키지 설치 (Mac) + +### 1. brew +http://brew.sh 페이지의 'Install Homebrew'를 참고하여 설치 + +### 2. node.js +> brew install node + +### 3. grunt-cli +> npm install -g grunt-cli + +## node 모듈 설치 +grunt task 수행에 필요한 node 모듈의 설치를 먼저 수행한다. + +XE 패키지의 루트… index.php 또는 Gruntfile.js 파일이 있는 곳에서 다음 명령으로 의존 모듈이 자동 설치된다. + +> npm install + +## Build +build 수행 전 Minified 파일이 갱신되도록 패키징 하려는 브랜치에서 아래 Task 중 `grunt minify`를 반드시 먼저 수행하도록 한다. + +build 명령으로 zip, tgz 포맷으로 패키징을 수행하며 지정한 대상의 변경된 파일만을 묶은 changed 파일을 함께 생성한다. + +> grunt build`:from`:`to` + +`from`, `to`에는 commit hash 또는 tag, branch를 지정할 수 있다. 패키지는 `to`에 지정한 대상을 기준으로하며 `from`과 `to`사이에 변경된 파일들 changed 파일을 별도로 생성한다. + +> grunt build:`old_tag`:`current_tag` + +이와 같이 지정하면 `old_tag`로부터 `current_tag` 사이의 변경된 파일만을 묶은 `xe.current_tag.changed.*` 파일과 `xe.current_tag.*`파일을 생성한다. + +`from`을 생략하여 `build:master`(master는 branch이다)와 같이 지정하면 `master`의 최신 상태로 빌드하며 changed 파일을 생성하지 않는다. + +### Build 수행 시 포함하는 패키지 +Build 수행 시 일부 확장 기능을 가져와 함게 패키징한다. 지정한 각 저장소의 master 브랜치로부터 코드를 가져오므로 **Build 수행 전에 각 저장소의 master 상태를 확인하도록 한다.** + +* board 모듈 + * https://github.com/xpressengine/xe-module-board +* krzip 모듈 + * https://github.com/xpressengine/xe-module-krzip +* syndication 모듈 + * https://github.com/xpressengine/xe-module-syndication + +## Task +.js, .css, .php 파일들에 대해 문법 검사 및 권장 코드를 확인할 수 있으며 minify 등의 작업을 수행할 수 있다. + +### Lint +.js, .css, .php 파일에 대해 문법 검사 등을 수행한다. +> grunt lint + +다음과 같이 선택적으로 수행할 수 있다. + +#### JS Lint (jshint) +`lint`가 아닌 `hint`임에 주의. +> grunt jshint + +#### CSS Lint +> grunt csslint + +### Minify +.js, .css 파일의 공백을 지우는 등 minify 동작을 수행할 수 있으며 대상은 Gruntfile.js 파일에 정의되어 있다. + + > grunt minify