Пређи на садржај

Gulp.js

С Википедије, слободне енциклопедије


Gulp.js
Стабилно издање
4.0.0
Репозиторијум Уреди на Википодацима
Платформаза различите платформе
ЛиценцаМИТ лиценца[1]
Веб-сајтgulpjs.com

gulp.js је Јаваскрипт алат отвореног кода развијен од стране Fractal Innovations[2] и заједнице отвореног кода у гиту и има значајну примену у front-end веб развоју.

Gulp је алат за извршавање задатака заснован на Node.js окружењу и Node Package Manager (npm) систему за управљање пакетима, који се користи за аутоматизацију задатака који се често понављају и одузимају доста времена као што су минимизација кода, надовезивање (енгл. concatenation), кеширање, тестирање модула, уклањање грешака у коду, оптимизација и др.[3]

Gulp користи приступ конфигурације у самом коду за дефинисање својих задатака и заснива се на упрошћеним додацима за њихово решавање. Gulp екосистем садржи преко 300 оваквих додатака које се могу изабрати.[4]

Преглед

Gulp[5] је алат у Јаваскрипту заснован на нод току података (енгл. node stream). Ови токови података олакшавају повезивање операција са фајловима путем "канала" за обраду података (енгл. pipelines).[6] Gulp чита податке из система фајлова и шаље их из једног у други додатак помоћу функције .pipe(), тако што извршава само један задатак у одређеном тренутку. На оригиналне фајлове се не утиче све док се не изврше сви додаци. Може се подесити да се модификују оригинални фајлови или да се креирају нови. На овај начин се обезбеђује могућност да се изврши велики број комплексних задатака повезивањем различитих додатака. Програмери могу писати своје додатке како би дефинисали своје задатке које треба решити.[7] За разлику од других алата за решавање задатака који подразумевано извршавају задатке, Gulp захтева знање Јаваскрипта и програмирања за дефинисање задатака. Gulp осим решавање задатака има и могућност копирања фајлова са једне на другу локацију, компајлирања, распоређивања, креирања обавештења, тестирања модула, уклањања грешака у коду, итд.

Значај алата за извршавање задатака

Алати за извршавање задатака, као што су Gulp или Grunt су засновани на нодовима а не на Node Package Manager (npm) јер су npm скрипте неефикасне у решавању вишеструких задатака. Иако програмери често користе Node Package Manager (npm) скрипте зато што су једноставне и лаке за имплементацију, постоји много примера где су се Gulp и Grunt боље показали у односу на подразумеване скрипте.[8] Grunt решава задатке тако што трансформише фајлове и чува их као нове фајлове у привременим фолдерима и резултат једног задатка се узима као улаз у други све док резултат не достигне одредишни фолдер. Ово захтева пуно улазно/излазних позива и креирање мноштва привремених фајлова. С обзиром да Gulp пролази кроз фајл систем а не захтева ниједну од ових привремених локација, на тај начин смањује број улазно/излазних позива и побољшава перформансе.[9] Grunt користи конфигурационе фајлове за извршавање задатака док Gulp захтева кодирање свог извршног фајла. Код Grunt-a, сваки додатак мора да се подеси тако да његов улаз одговара излазу претходног додатка. Код Gulp-a, додаци су аутоматски "каналисани" (енгл. pipe-lined).[6]

Извршавање

Gulp задаци се извршавају из командне линије (енгл. Command Line Interface - CLI)[8] и захтевају фајлове package.json и gulpfile.js (тзв. gulpfile) у кореном директоријуму. У gulpfile се учитавају додаци и дефинишу задаци. Прво се сви потребни модули учитавају а онда се задаци дефинишу у gulpfile. Сви потребни додаци наведени у gulpfile се инсталирају у devDependencies.[10] Подразумевани задатак се извршава помоћу $gulp. Појединачни задаци се дефинишу помоћу gulp.task и извршавају помоћу gulp <task> <othertask>.[11] Сложенији задаци се дефинишу повезивањем додатака и уз помоћ .pipe()функције.[12]

Референце

  1. ^ „License to github.com” (на језику: енглески). Приступљено 2016-05-30. 
  2. ^ Jed Mao; Maximilian Schmitt; Tomasz Stryjewski; Cary Country Holt; William Lubelski (2014). Developing a Gulp Edge (1st изд.). Bleeding Edge Press. ISBN 978-1-939902-14-6. 
  3. ^ „Building With Gulp – Smashing Magazine”. Smashingmagazine.com. Приступљено 2016-12-14. 
  4. ^ „gulp.js plugin registry”. Gulpjs.com. Приступљено 2016-12-14. 
  5. ^ „gulpjs/gulp”. GitHub. Приступљено 2016-09-22. 
  6. ^ а б „substack/stream-handbook: how to write node programs with streams”. GitHub. Приступљено 2016-12-14. 
  7. ^ „gulpjs/gulp”. GitHub. Приступљено 2016-09-22. 
  8. ^ а б „gulpjs/gulp”. GitHub. Приступљено 2016-09-23. 
  9. ^ „Gulp for Beginners”. CSS-Tricks. 2015-09-01. Приступљено 2016-12-14. 
  10. ^ „install | npm Documentation”. docs.npmjs.com. Приступљено 2016-09-22. 
  11. ^ „gulpjs/gulp”. GitHub. Приступљено 2016-09-23. 
  12. ^ Грешка код цитирања: Неважећа ознака <ref>; нема текста за референце под именом :3.

Спољашње везе