Opazovanje sprememb dokumentov v Gulp

Ni zelo priročno vsakič klicati ukaz v konzoli ob potrebi po izvedbi kakšne transformacije - saj pri pisanju koda to moramo narediti zelo pogosto.

Zato ima Gulp vgrajeno posebno funkcijo watch za opazovanje sprememb datotek. Ob spremembi katere koli od sledenih datotek bo ustrezna naloga zagnana avtomatično.

Poglejmo si na primeru transformacije LESS v CSS. Za začetek priklopimo vse potrebno:

javascriptlet {src, dest, watch} = require('gulp');
let less = require('gulp-less');

Zdaj naredimo nalogo za transformacijo:

javascriptfunction task(cb) {
  return src('src/*.less')
    .pipe(less())
    .pipe(dest('dist'));
}

Zdaj izvedemo izvoz anonimne funkcije, znotraj katere bomo sledili spremembam naših datotek, pri čemer kličemo v tem primeru našo nalogo:

javascriptexports.default = function() {
  watch('src/*.less', task);
};

Po zagonu se bo v ukazni vrstici vrtela "večna" naloga. To pomeni, da v ta terminal ne bomo mogli vnašati drugih ukazov. Prekiniti izvajanje takšne naloge je mogoče s pritiskom na terminalu kombinacijo Ctrl + C.

Lahko sledimo različnim skupinam datotek, jih povezujemo z različnimi nalogami:

javascriptexports.default = function() {
  watch('src/*.less', task1);
  watch('src/*.sass', task1);
};

Ali pa lahko za eno skupino izvedemo serijo nalog:

javascriptexports.default = function() {
  watch('src/*.less', series(task1, task2));
};
Задание 1

Recimo, da imate skupino JavaScript datotek. Poskrbite, da se te datoteke združijo v eno datoteko, nato pa se izvede minimizacija te datoteke. Poskrbite, da se naloga izvede ob spremembi katere koli od naših datotek.