grunt 사용하실 때 플러그인 로드의 편의를 위해 load-grunt-tasks를 사용하시나요?
속도면에서 조금 더 뛰어난 jit-grunt로 바꿔보세요!

jit-grunt

https://www.npmjs.org/package/jit-grunt

설치

$ npm install jit-grunt --save-dev

task 이름을 기준으로 해서 task를 실행할 때(JIT: Just In Time) 플러그인을 로드해주기 때문에 grunt 수행속도가 몇초이긴 하지만 체감할 정도로 빨라집니다.
불필요한 플러그인을 로드하지 않기 때문에, 특히 watch를 쓸 때 매우 좋아 보입니다.
 
jit-grunt: 8.6초
jit-grunt
load-grunt-tasks: 10.5초
load-grunt-tasks
 

기본형태

require('jit-grunt')(grunt);

기본적으로 task 이름, grunt-[task 이름], grunt-contrib-[task 이름]에 매칭을 하고, 예외적인 경우에는 수동으로 입력할 수 있습니다.
 

예외적인 경우의 Task 맵핑

require('jit-grunt')(grunt, {
  sprite: 'grunt-spritesmith',
  hello: 'custom/say-hello.js' // for custom tasks.
});

 
grunt.loadTasks로 불러쓰던 외부 js 파일도 위와 같은 방법으로 맵핑할 수 있고,
또는 customTasksDir 옵션을 이용해서 디렉토리를 지정해서 로드 할 수 있습니다. 이 때 js 파일명이 task명과 동일해야 합니다.

require('jit-grunt')(grunt, {
  sprite: 'grunt-spritesmith',
  hello: 'custom/say-hello.js' // for custom tasks.
})({
  customTasksDir: '.grunt-tasks' // 디렉토리명(Gruntfile의 상대경로)
});

 
이름 때문에 맵핑되지 않는 task가 있어서 조금 불편할 수는 있지만, 속도때문에 답답한 부분을 줄여줄 수 있는 좋은 플러그인입니다.
스크린샷에 나온 시간 표시부분은 time-grunt를 활용했습니다.
 
감사합니다.


KWAK Hyunchul

웃으세요, 웃기기 전에.

0개의 댓글

답글 남기기

아바타 플레이스홀더

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다