Ostatnio pisałem o systemie automatyzacji pracy grunt. Tak jak wspomniałem ma on swoje wady i zalety. Na szczęście nie jest to jedyna opcja jaka jest dostępna dla światka JavaScript.

gulp.js The streaming build system
gulp.js The streaming build system

Konkurencją dla grunt jest gulp.js (niektórzy nawet mówią, że grunt jest pase a gulp trendi) – narzędzie, które działa na zasadzie code-over-configuration z prostym API (to tutaj IMO jest najważniejsze – wystarczy porównać dwa skrypty robiące to samo w grunt i w gulp by zobaczyć, że gulp jest znacznie bardziej przejrzysty, przynajmniej dla mnie). Do tego, taski w gulp są przeznaczone do wykonywania jednej czynności, a nie jeden task do wszystkiego i niczego (np.: grunt-contrib-uglify) :)

Instalacja Gulp.js jest prosta, najpierw instalujemy command line interface (CLI):

npm install -g gulp

Da nam to dostęp do komendy gulp (podobnie zresztą jak w przypadku grunt). Jednak mimo, że mamy gulp zainstalowanego globalnie to też musimy go zainstalować lokalnie – w przeciwnym wypadku dostaniemy błąd z informacją, że lokalnie też musi być :)

npm install gulp --save-dev

Teraz by móc z gulp skorzystać musimy stworzyć plik konfiguracyjny gulpfile.js – podobnie jak w przypadku grunt, należy go umieścić w katalogu głównym naszego projektu.

Niestety, na razie nie ma możliwości tworzenia tego pliku automatycznie, a request by taka możliwość istniała, został zamknięty.

A więc:

touch gulpfile.js
notepad gulpfile.js

I wklejami następujący kod:

var gulp = require('gulp');

// define tasks here
gulp.task('default', function() {
    // run tasks here
    // set up watch handlers here
    
});

Teraz, mając taki plik gotowy będziemy mogli rozpocząć zabawę ale o tym, w następnej części :)

A wy korzystaliście już z gulpa? Bawiliście się także gruntem? Jakie są wasze spostrzeżenia? Co wolicie? Co wam się podoba a co nie?