Битката за изграждане на скриптове Гълпа срещу грухтене
Вече писах за това как да започна с Gulp, както и как да започна с Grunt. Те двамата автоматизирайте нашите задачи, те двамата използвайте Node, и те и двамата изискват създаване на задачи и инсталиране на приставки някакъв вид. Но дали се чудите за разликата между двете, или дори, което е по-добре?
В тази статия ще се съсредоточа основно върху различията между тези два проекта които могат да ви помогнат да решите коя от двете може да смятате за по-добра за себе си. Ще използвам код, който може да е непознат. Ако е така, предлагам да прочетете предишните две статии, преди да започнете.
Повече на Hongkiat.com
- Как да започнем с Gulp
- Как да започнем с Grunt
скорост
Основната разлика между Gulp и Grunt е в как се справят с задачите си за автоматизация отвътре. Gulp използва Node потоци, докато Grunt използва временни файлове. Нека го кажем на обикновен английски?
Да предположим, че искате да напишете SASS код за вашия проект. Вие бихте искали да компилирате вашия SASS код и след това да го намалите.
Грунт обработва това използване междинни файлове които са дискови I / O операции. Вашият SASS файл се компилира и след това се записва във временен файл. Временният файл се използва от autoprefixer и след това крайният продукт се записва в целевия файл.
Гълп се грижи за всичко това в памет. Вашият изходен SASS файл се компилира, резултатът се предава на автоматичния префиксър, без да се записва във файл и след това се изписва целевият файл.
В сравнение с операциите в паметта, записът на дискове е бавен, което означава, че Gulp има голямо предимство в скоростта (за сега). Сравнение на скоростта е направено от tech.tmw, което показва, че повечето задачи са поне два пъти по-бързи при Gulp. Макар че това не беше изключително научно изследване, тенденцията е там и аз виждах същото с моите собствени проекти. Но колко голяма е разликата в скоростта?
Разлика във секунди
За повечето проекти това няма да има значение. Повечето проекти са малки. Когато създавате WordPress тема или нещо подобно, броят на файловете, с които трябва да работите, е в разумни граници. Наистина няма значение дали стиловете са компилирани на 400ms или 800ms.
Освен това повечето проекти могат да бъдат структурирани по такъв начин, че някои от най-интензивните въпроси могат да бъдат отстранени. Ако имате 50 SASS файла, можете също толкова бързо да ги свържете, докато сте в процес на разработка, няма да има нужда от автоматична корекция или изтриване. Няма нужда да оптимизирате изображенията всеки път, когато записвате проект и т.н..
Дори когато наистина се нуждаете от големите пушки, защото работите върху сървъра или когато актуализирате хранилище, вграденото време от 5 секунди или 9 секунди прави голяма разлика?
На всичкото отгоре, Grunt ще добави поддръжка за тръбопроводи в предстоящото 0.5 издание, което значително ще ускори нещата, което ще направи този въпрос спорен..
Общността
Грунт е много по-дълъг от Гълп, така че има значителна потребителска база. В момента Grunt получава средно около 37 000 изтегляния на ден, Gulp получава малко повече от половината от това, близо до 23,000 марки. Като се има предвид това, Гълп е само около година и половина, което прави това число уважавано, най-малкото.
Grunt в момента има над 4000 плъгини, докато Gulp има повече от 1200 плъгина. Според тенденциите на Google повече хора търсят неща, свързани с Grunt, има повече форуми, които се занимават с него и като цяло повече подкрепа от общността.
Разбира се, Gulp идва, което означава, че това е така вероятно ще се изравни в дългосрочен план. Това обаче е бариера за някои разработчици, особено за работещите проекти, базирани на Grunt.
Искам да подчертая, че общностите и за двете са изключително хубаво. Доколкото мога да кажа, връзката между лидерите във всяка общност е невероятна и трябва да служи като пример на всички. Създателят на Gulp действително помогна на писателя на сравнителното тестване на скоростта да подобри точността на времето, което води до намаляване на разликите във времето. Това наричам един джентълмен!
Конфигурация на код срещу
Очевидно това е критична точка за мнозина, но за да бъда честен, не мога да видя проблема тук лично.
Аргументът отива по следния начин: Gulp е добър пример за това Конфигурирането на кода може да бъде добро нещо, когато конфигурацията стане малко объркваща. Други хора казват, че докато това е вярно и Gulp е по-лесно за Прочети, по-трудно е пиша защото тръбите могат да бъдат малко объркващи.
Преди да претегля, ето един и същ пример първо в Grunt, след това в Gulp:
grunt.initConfig (sass: dist: files: [src: 'dev / * .sssss', dest: '.tmp / styles', разгънете: true, ext: '.css'], autoprefixer : dist: files: [expand: true, cwd: '.tmp / styles', src: ', * / *. css', dest: 'css / стилове'], гледайте: styles: файлове: ['dev / *. scss'], задачи: ['sass: dist', 'autoprefixer: dist']); grunt.registerTask ('default', ['styles', 'watch']);
gulp.task ('sass', function () gulp.src ('dev / *. scss') .pipe (sass ()) .pipe (autoprefixer ()) .pipe (gulp.dest ('css / styles') ));); gulp.task ('default', function () gulp.run ('sass'); gulp.watch ('dev / *. scss', функция () gulp.run ('sass');); );
Моето мнение е, че наистина няма значение. Разбира се, ако сте свикнали с първия начин, може да се наложи да прекарате известно време във фигура, но това е вярно и обратно. Така че за мен “това е объркващо” аргументът е напълно невалиден. който и да е Новият метод, който научите, в началото е объркващ, но ако отделите време, за да разберете логиката на всеки, всичко се изравнява.
Това каза, аз лично предпочитам API на Gulp, защото е чисти това отразява начина, по който мисля по-отблизо от Грънт. Това е, разбира се напълно субективно и въобще не е проблем с Грунт, това е само моето лично предпочитание.
Как да изберем
Не мисля, че има някакъв въпрос относно факта, че и Grunt и Gulp са чудесни инструменти и са помогнали на хората да спасят безброй часове от годините. Грунт за момента е малко по-бавен, но има много по-голяма общност. Gulp е по-бърз, има по-чист API, но липсва потребителска база.
Мисля, че решението в крайна сметка ще се свежда до непрекъснатост, налични плъгини и предпочитание.
(1) Ако сте използвали Grunt / Gulp за известно време сега и доволен си от него, няма причина да превключвате.
(2) Ако вашият проект изисква приставки които не са осигурени от Gulp и не сте готови да си напишете сами, ще трябва да отидете с Grunt.
(3) Ако горните две съображения не се отнасят за вас, тя ще се свежда до предпочитание. Предлагам да изпробвате и двете и да виждате който се държи с вас.
Както казах, аз избрах да използвам Gulp, защото ми харесва по-чистия API по-добре, но аз съм напълно удобно да използвам Grunt, ако проектът го изисква. Какво трябва не да се чете, че г-н Знаете-всичко-каза, че Гълп е по-добре и го приемат. Макар да има различия, няма ясен победител и и двата проекта могат и ще съжителстват. Изпробвайте ги и направете своя собствена мисъл.
Забележка: може да искате да разгледате и мненията на потребители като Keith Cirkel (консултант на Javascript), който ви съветва да използвате нито едно. В интересното защо трябва да спрем да използваме статията на Grunt & Gulp, той предлага използването на npm.
Допълнителна информация
Има много други отлични статии по тази тема. Сърдечно препоръчвам някое от следните за по-нататъшно четене; никога не боли да прочете това, което другите имат да кажат!
- Grunt срещу Gulp - Отвъд числата (специални благодарности за ясните примери)
- Гълф, Грънт, каквото и да било
- Изберете: Grunt, Gulp или npm?
- Бързото изпитване на Гълф и Грънт
- Защо трябва да спрем да използваме Grunt & Gulp
- Изграждане на войни (използвайте стрелките за навигация)
- Няма нужда да Grunt, вземете глътка свеж въздух