Outsider's Dev Story

Stay Hungry. Stay Foolish. Don't Be Satisfied.
RetroTech 팟캐스트 44BITS 팟캐스트

Grunt의 테스크를 자동으로 불러오는 load-grunt-tasks

꽤 오래전에 Gruntfile.js에서 플러그인 자동 로드하기라는 글을 올렸다. Grunt를 사용할 때 새로운 테스크를 사용하려면 npm을 이용해서 설치한 뒤에 Gruntfile.js에서 grunt.loadNpmTasks();로 테스크를 불러와야 사용할 수 있다. 설치한 다음에 사용하지 않는 일은 거의 없으므로 이는 꽤 귀찮은 일이라 위의 글과 같은 코드를 작성해서 자동으로 로딩을 했었는데 사실 지금은 저 코드를 사용하고 있지 않다.

비슷한 용도로 만들어진 load-grunt-tasks라는 테스크를 대신 사용하고 있다. 사용법도 간단하고 패키지만 설치하면 되므로 직접 작성한 코드보다는 이 테스크를 사용하고 있다. 다른 Grunt 테스크처럼 npm install --save-dev load-grunt-tasks로 설치를 한다.

module.exports = function (grunt) {
  require('load-grunt-tasks')(grunt);

  grunt.initConfig({});
  grunt.registerTask('default', []);
}

Gruntfile.js에서 grunt.loadNpmTasks();를 다수 사용하는 대신 위처럼 require('load-grunt-tasks')(grunt);를 사용하면 grunt로 시작하는 모든 테스크를 모두 불러온다. 이는 실제로는 require('load-grunt-tasks')(grunt, {pattern: ['grunt-*', '@*/grunt-*']});코드와 같은 코드인데 관례상 Grunt 테스크는 grunt-로 시작하므로 grunt-로 시작하는 패키지를 자동으로 불러오는 역할을 한다.

일방적인 경우에는 앞의 스크립트를 사용하거나 이 테스크를 사용하거나 큰 차이가 없지만, load-grunt-tasks를 사용하면 코드가 훨씬 간단하므로 굳이 외우고 있을 필요가 없이 간단히 사용할 수 있고 문서를 보면 package.json파일의 위치를 지정하거나 패턴 외에 다른 옵션을 주는 등 다양한 조건을 줄 수 있으므로 프로젝트의 상황에 따라 유연하게 사용할 수 있다.

2015/03/20 22:45 2015/03/20 22:45