[컴] gulp 사용

걸프 / gulp / grunt 사용



grunt vs gulp


위의 글에서는 앞으로 gulp 가 좀 더 낫지 않겠는가라고 이야기한다.

grunt 가 사용하기 편리하고, 지금까지 많은 프로젝트에서 사용해 왔고, 커뮤니티도 gulp 보다 크다. 그래서 계속 사용되기는 할 것이라고 한다. 초보자의 입장에서 바로 쓰기에는 grunt 가 낫다는 의견이다.

개인적으로 grunt 만 써봐서 아직 뭐라 이야기는 못하겠지만, grunt 가 그리 어렵지 않은 것은 맞다. gulp 는 써보고 이야기 하겠다.



gulp 사용

ref. 1 을 보면서 gulp 를 한 번 사용해 보도록 하겠다.
  1. npm rm --global gulp 실행 : gulp-cli 이전 버전인 gulp 를 지워야 한다. 깔린 경우 지워준다. 안깔려있다면 warning message 하나 뿌려준다.
  2. npm install --global gulp-cli
  3. <project_root> folder 에서 npm install --save-dev gulp
  4. <project_root> folder 에 gulpfile.js 를 만든다.
  5. gulp 를 실행 : 이러면 기본적으로 gulpfile.js 에서 task 이름 'default' 를 찾아서 실행한다.

// gulpfile.js

var gulp = require('gulp');


gulp.task('default', function() {

   // place code for your default task here
   // Do something that "builds stuff"
   var stream = gulp.src(/*some source path*/)
      .pipe(somePlugin())
      .pipe(someOtherPlugin())
      .pipe(gulp.dest(/*some destination*/));

   return stream;
  });

});


위의 코드를 보면 대략적으로 어떻게 사용하는지 감은 올것이다.

참고 : 쿠...sal: [컴][javascript] grunt 로 project 만들기

Async Task

추가적으로 async task 도 사용할 수 있다. 그것은 여기를 참고하자.


run-sequence

gulp 에서 어떤 task 를 실행하기 전에 어떤 task 를 실행하도록 하는 것은 dependency 설정으로 가능하다. 하지만 어떤 task 가 끝나서 특정 task 를 실행하도록 하는 것은 아직 쉽게 설정할 수 있게 되어 있지 않다.

그래서 gulp 4.0 에서는 sequence 가 추가되어서 task 를 순차적으로 실행할 수 있다고 한다. 이녀석이 나오기 전까지는 run-sequence 를 사용하면 된다고 한다. 아래 링크를 참고하자.




Babel 사용하기

babel 을 gulp 를 이용해서 사용하려고 한다. 아래 경로에 가면 사용법이 나와있다.

npm install --save-dev gulp-babel babel-preset-es2015

const gulp = require('gulp');
const babel = require('gulp-babel');

gulp.task('default', () =>
    gulp.src('./app.js')
        .pipe(babel({
            presets: ['es2015']
        }))
        .pipe(gulp.dest('dist'))
); 

./app.js 를 읽어서 compile 하고 그 결과를 dist 폴더에 app.js 라는 이름으로 만들어 넣어준다.


babel

babel 을 대략적으로 설명하면 compiler 이다. coffee script 나 typescript 같은 언어를 보면 compiler(transpiler 라고도 하지만, 뭐..) 가 존재한다. 그런데 이 compiler 의 결과물이 js file 이 나온다. 이것과 같은 맥락으로 babel 은 새로운 언어가 아니라 새로운 javascript 버전의 syntax 를 사용해서 .js 를 작성하면, 이 .js 를 old version(현재 우리가 사용하는?) 의 js 로 변경해 준다.

아래 그림을 보면 조금 이해가 될 듯 하다. 왼쪽이 "ES2015 문법"이고 오른쪽이 현재 browser 에서 지원하는 "일반적인 javascript 문법"이다.



coffescript vs ES2015

개인적으로 coffee 를 많이 사용했다. 그런데 ES2015 의 기본 syntax 가 coffeescript 를 많이 닮아 있어서 이제 plain 한 javascript 만으로도 간결하게 coding 을 할 수 있을 듯 해서 보고 있다. 그런데 보고 있으니 coffeescript 가 더 간결한듯 싶어서 안쓸것 같기도 하다 ^^;;;

현재 javascript version 이 완전히 새로운 버전으로 대체되기 까지는 꽤 오랜 시간이 걸릴듯 하지만 그동안은 이 babel 에 의지하면 되지 않을까 생각하고 있다.

Learn ES2015 · Babel





Reference

  1. gulp/getting-started.md at master · gulpjs/gulp · GitHub

댓글 없음:

댓글 쓰기