강좌 & 팁
글 수 2,412
2014.11.14 12:36:19 (*.134.169.166)
41751
(**) load-grunt-tasks 란?
Grunt 를 사용하는 사람들은 무척 게으르다는 것을 느낍니다.
오늘 소개할 load-grunt-tasks 는 이 게으름의 극치를 느끼게 해 줍니다.
Gruntfile.js 파일을 작성할 때..
grunt.loadNpmTasks();
를 종종 볼수 있을 것입니다.
이 함수는 Grunt 에서 사용하는 플러그인들을 로드하는 함수인데..
이게 의존 관계가 있고 하나라도 빼먹으면..
당연히 grunt 명령이 동작하지 않습니다.
뭐..
귀찮겠지만..
이것도 귀찮아서 만든 것이 바로
load-grunt-tasks 플러그인 입니다.
뭐 쓰는 방법도 심플합니다.
require('load-grunt-tasks')(grunt);
한줄이면 됩니다.
이 모듈은 package.json 을 분석해서
필요로 하는 플러그인을 자동으로 로드해 줍니다.
이걸 쓰면 앞으로 grunt.loadNpmTasks(); 는 안녕 이겠죠? ^^
자 이걸 어떻게 사용해야 할까요?
(**) load-grunt-tasks 플러그인 설치
이 플러그인은 다음에서 관리되고 있습니다.
https://github.com/sindresorhus/load-grunt-tasks
지금까지 해 왔던 대로 이렇게 하면 됩니다.
$ npm install --save-dev load-grunt-tasks
(**) Gruntfile.js 수정
자 이전에 사용했던 Gruntfile.js 을 다음과 같이 수정해 봅시다.
--[Gruntfile.js]--------------------------------------------------------------------------
var path = require('path');
module.exports = function(grunt) {
require('load-grunt-tasks')(grunt);
grunt.initConfig ({
express: {
server : {
options: {
script: path.resolve(__dirname, './test_server/bin/grunt_www.js'),
port: 3020,
},
},
},
watch: {
express: {
files: [ path.resolve(__dirname, './Gruntfile.js'),
path.resolve(__dirname, './test_server/bin/grunt_www.js'),
path.resolve(__dirname, './test_server/*.js'),
],
tasks: [ 'express:server' ],
options: { spawn: false , },
},
livereload: {
files: [ path.resolve(__dirname, './test_server/views/*.jade'),
],
options: { livereload: true, },
}
}
});
grunt.registerTask('default', ['express:server', 'watch']);
};
----------------------------------------------------------------------------------------
달라진 부분은
require('load-grunt-tasks')(grunt);
을 추가한 것이고 이전에 있던
grunt.loadNpmTasks('grunt-express-server');
grunt.loadNpmTasks('grunt-contrib-watch');
이 없어졌습니다.
이제 플러그인은 설치만 하면 됩니다. ^^