grunt 간단 사용기
개요
- task 를 지정해서 커맨드라인을 통해서 동작하는 자바스크립트 빌드용 툴이다.
- 여러가지 플러그인을 통해서 css, js 등의 유효성 검증 및 압축, 난독화등을 할 수 있다.
설치
- bower 와 마찬가지로 npm 을 기반으로 설치되기 때문에 일단 node.js 를 설치해서 npm을 설치 시킨다.
grunt-cli 설치하기
$ npm install -g grunt-cl
grunt 설치
$ npm install -g grunt-cl
사용하기
package.json 파일 생성하기
– 다음의 명령으로 실행하는데 별도의 입력할 것이 없다면, 계속 enter를 쳐서 넘어가도 된다.
$ npm init
Gruntfile.js 파일 생성
– 프로젝트와 동일한 위치에 생성한다. 실질적인 grunt 명령어를 위해서 어떤 작업을 수행할 것인지를 지시하는 파일
– 대소문자 주의 할것.
– registerTask 부분에서 dev 라고 하는 task 명과 작업할 리스트를 적는데, 위의 경우 적지 않았음.
실행하기
$ npm install -g grunt-cl
플러그인 설치하기
– 다양한 플러그인을 통해서 여러가지 기능을 제공함.
– 여기에서는 js를 검증하고, 합쳐주고, 난독화 하는 부분에 대해서 설치하고, Gruntfile.js 에 명시하는 부분까지 설명한다.
grunt-contrib-concat
– 말 그대로 파일을 합쳐주는 플러그인
$ npm install -g grunt-cl
– 위와 같이 설정하면 되는데, 설치한 플러그인을 로드하는 부분을 loadNpmTasks()
함수를 통해서 지정하고, .initConfig 에서 플러그인에 대한 설정을 명시한다.
– 그리고 마지막으로 해당 작업을 registerTask를 통해서 등록하면 된다.
– 주의할점이 src, dest의 위치를 지정해 줘야 하는데 src 에서 static/js 하위에 여러 디렉토리가 있고 그 하위에 js가 있다면 /**/ 으로 써주면 알아서 찾는다.
옵션
Optiosseparator
- 파일이 통합되는 지점에 들어갈 string 설정
banner
- 파일이 통합된 output 파일 최상단의 banner string을 설정
footer
- ‘banner’와 같은 방식으로, 통합된 파일의 최하단에 위치하는 string을 설정
stripBanners
각각의 파일에 쓰여있는 JavaScript banner comments를 제거
· false – 제거하지 않는다.(default)
· true – /* … / 은 제거되지만, /! … */은 제거되지 않는다.
· options
block : true 인 경우, 모든 block comments 제거
line : true 인 경우, 모든 // 라인 제거
grunt-contrib-jshint
– JSHint를 통한 file validation
force
· true – error 검출 시 task를 fail시키지 않고 계속 진단
reporter
· output을 modifying할 수 있는 옵션 (jshint-stylish 설치 : $npm install jshint-stylish –save-dev)
*grunt-contrib-uglify
– UglifyJS를 통한 file minfying
옵션
다양한 플러스인을 한번에 쓰는 경우
주의할점중 하나는
registerTask()
함수를 통해서 등록할때, 작업의 명시 순서에 따라 호출이 된다.예를 들어, 위에서 dist의 경우 jshint, concat, uglify 순으로 호출되어 진다.