2015. 7. 18. 05:50

1. install NPM

> sudo apt-get install npm

> sudo npm update -g npm


2.install CLI

> sudo npm install -g grunt-cli


3. Create Gruntfile

> npm init # 명령어 실행 후 "package.json" 파일이 생성되고 "name" : "프로젝트명"이  "grunt"일 경우 다른 프로젝트명으로 변경한다.

> npm install grunt --save-dev

npm install grunt-contrib-concat --save-dev # concat 플러그인 설치 (여러 파일을 하나의 파일로 만들어준다)

> npm install grunt-contrib-watch --save-dev # watch 플러그인 설치(설정된 파일을 모니터링하여 변경사항이 있으면 바로 적용시켜준다)

> touch gruntfile.js

Grunt 주요 플러그인

  - uglify : JS 파일 병합 및 압축

  - concat : JS 파일 병합 

  - less, sass : less 또는 sass 파일을 css로 변환(?)

  - cssmin : css 파일 압축

  - imagemin : 이미지 파일 사이즈 감소


4. gruntfile.js Setting

module. exports = function(grunt) {


grunt.initConfig({

  concat: {

    js: {

      src: ['script/js1.js', 'script/js2.js', 'script/js3.js'],

      dest: 'dist/js/built.js',

    },

    css: {

      src: ['css/intro.js', 'css/project.js', 'css/outro.js'],

      dest: 'dist/css/built.js',

    },

  },

  watch: {

    scripts: {

      files: ['script/**/*.js'],

      tasks: ['concat:js'],

    },

    css: {

      files: ['css/**/*.css'],

      tasks: ['concat:css'],

    },

  },

});


grunt.loadNpmTasks('grunt-contrib-concat');

grunt.loadNpmTasks('grunt-contrib-watch');


grunt.registerTask('default', ['concat', 'watch']);

}


5. Execute

> grunt {TaskName}

> grunt

grunt.registerTask()의 첫번째 인자에 'default'로 지정하면 grunt 명령어 실행시 옵션 없이 두번째 인자 배열안의 항목들을 실행할 수 있다.

Posted by CoolDragon