Bătălia de a construi Scripturi Gulp Vs Grunt
Am scris deja despre cum să începeți cu Gulp, precum și cum să începeți cu Grunt. Ei amândoi automatizați sarcinile noastre, ei amândoi utilizați Nodul, și ambii vă cer să faceți asta creați sarcini și instalați pluginuri de un fel. Dar te întrebi diferența dintre cele două, sau chiar, care este mai bine?
În acest articol mă voi concentra în principal pe diferențele dintre aceste două proiecte care ar putea influența în a vă ajuta să decideți care dintre cele două vă puteți considera mai bine pentru dvs. Voi folosi un cod care poate fi necunoscut. Dacă este, vă recomand să citiți articolele publicate anterior înainte de a începe.
Mai multe pe Hongkiat.com
- Cum să începeți cu Gulp
- Cum să începeți cu Grunt
Viteză
Principala diferență dintre Gulp și Grunt se află în modul în care se ocupă de sarcinile lor de automatizare din interior. Gulp folosește fluxurile de noduri în timp ce Grunt folosește fișiere temp. Să o punem în engleza simplă, să o facem?
Să presupunem că doriți să scrieți codul SASS pentru proiectul dvs. Ați dori să compilați codul SASS și apoi să îl minifiționați.
Grunt se ocupă de acest lucru fișiere intermediare care sunt operațiuni I / O de disc. Fișierul dvs. SASS este compilat și apoi scris într-un fișier temporar. Fișierul temporar este utilizat de autoprefixer și apoi produsul final este scris în fișierul de destinație.
Gulp are grijă de toate astea in memoria. Fișierul sursă SASS este compilat, rezultatul este trecut la autoprefixer fără a fi scris într-un fișier și fișierul destinație este apoi scos.
În comparație cu operațiunile din memorie, scrierea de discuri este lentă, ceea ce înseamnă că Gulp are un mare avantaj de viteză (deocamdata). O comparație de viteză a fost făcută de tech.tmw, care arată că majoritatea sarcinilor sunt de cel puțin două ori mai rapide pe Gulp. Deși nu a fost un studiu foarte științific, tendința este acolo și am văzut același lucru cu proiectele mele. Dar cât de mare este impactul diferenței de viteză?
Diferența în secunde
Pentru majoritatea proiectelor acest lucru nu contează. Majoritatea proiectelor sunt mici. Când creați o temă WordPress sau ceva similar, numărul de fișiere cu care trebuie să lucrați se află într-o limită rezonabilă. Nu conteaza daca stilurile tale sunt compilate in 400ms sau 800ms.
Mai mult, majoritatea proiectelor pot fi structurat astfel încât unele aspecte cele mai intense să poată fi evitate. Dacă aveți 50 de fișiere SASS, le puteți concura cât se poate de rapid în timpul dezvoltării, nu va fi nevoie să le autoprefixați sau să le micșorați. Nu veți avea nevoie să optimizați imaginile de fiecare dată când salvați un proiect și așa mai departe.
Chiar și atunci când aveți cu adevărat nevoie de arme mari pentru că vă împingeți munca dvs. pe un server de așteptare sau când actualizați un depozit, are un timp construit de 5 secunde sau 9 secunde face o mare diferență?
La început, Grunt va adăuga suport pentru conducte în lansarea de 0,5, care va accelera considerabil lucrurile, făcând acest lucru un punct de interes.
Comunitatea
Grunt a fost în jur de mult mai mult decât Gulp, deci are o bază de utilizatori semnificativă. Grunt primește în medie aproximativ 37.000 de descărcări pe zi, în medie, Gulp devine un pic mai mult decât jumătate, aproape de marcajul de 23.000. Acestea fiind spuse, Gulp a fost în jur de un an și jumătate, făcând acest număr respectabil cel puțin.
Grunt are în prezent peste 4000 de pluginuri, în timp ce Gulp are mai mult de 1200 de pluginuri. Potrivit tendințelor Google, mai mulți oameni caută lucruri legate de Grunt, există mai multe forumuri care se ocupă de acestea și, în general, mai mult sprijin comunitar.
Desigur, Gulp vine și vine, ceea ce înseamnă că este care ar putea să ajungă pe termen lung. Cu toate acestea, aceasta este o barieră pentru unii dezvoltatori, în special pentru cei care lucrează pe proiecte Grunt.
Aș dori să subliniez faptul că comunitățile sunt ambele extrem de frumos. În măsura în care pot spune relația dintre liderii din fiecare comunitate este uimitoare și ar trebui să servească drept exemplu tuturor. Creatorul lui Gulp a ajutat de fapt scriitorul la compararea testului de viteză să îmbunătățească precizia de timp care conduce la o scădere a diferențelor de timp. Asta numesc un domn!
Cod Vs Configurare
Se pare că acesta este punctul de vârf pentru mulți, dar pentru a fi sincer, nu văd problema aici personal.
Argumentul merge astfel: Gulp este un bun exemplu codul de configurare poate fi un lucru bun atunci când configurația devine un pic confuz. Alți oameni spun că în timp ce acest lucru este adevărat și Gulp este mai ușor citit, este mult mai dificil scrie deoarece tubulatura poate fi un pic confuz.
Înainte de a cântări, iată același exemplu, primul în Grunt, apoi în Gulp:
, autoprefixer src: 'dev / * .ssss', dest: '.tmp / styles', expand: true, ext: '.css'] : dist: files: expand: true, cwd: '.tmp / styles', src: ', * / * css', dest: 'css / stiluri: fișiere: ['dev / *. scss'], sarcini: ['sass: dist', 'autoprefixer: dist']); grunt.registerTask ("implicit", ["stiluri", "ceas"]);
gulp.task ('sass', functie () gulp.src ('dev / * .scss') .pipe (sass ()) .pipe (autoprefixer ));); gulp.task ('default', funcția () gulp.run ('sass'); gulp.watch ('dev / *. );
Opinia mea este că nu contează. Sigur, dacă sunteți obișnuiți cu primul pas, poate fi necesar să vă petreceți ceva timp în imaginea celui de-al doilea, dar acest lucru este adevărat și invers. Deci, pentru mine, “este confuz” argumentul este complet nevalid. Orice noua metodă pe care o învățați este la început confuză, dar dacă vă faceți timp pentru a înțelege logica fiecăruia, totul se încheie.
Acestea fiind spuse, eu personal prefer API-ul lui Gulp pentru că este curater, și reflectă modul în care cred mai mult decât Grunt. Acest lucru este bineînțeles complet subiectiv și nu este deloc o problemă cu Grunt, este doar preferința mea personală.
Cum sa alegi
Nu cred că există vreo întrebare cu privire la faptul că atât Grunt cât și Gulp sunt instrumente excelente și au ajutat oamenii să salveze nenumărate ore de timp de-a lungul anilor. Grunt este un pic mai lent pentru moment, dar are o comunitate mult mai mare. Gulp este mai rapid, are un API mai curat, dar lipsește baza de utilizatori.
Cred că decizia va ajunge în cele din urmă la continuitate, pluginuri disponibile și preferinţă.
(1) Dacă ați folosit Grunt / Gulp pentru un timp și acum esti multumit de asta, nu există niciun motiv pentru a trece.
(2) Dacă proiectul tău necesită pluginuri care nu sunt furnizate de Gulp și nu sunteți pregătit să vă scrieți singur, va trebui să mergeți cu Grunt.
(3) Dacă cele două considerații de mai sus nu se aplică în cazul dvs., aceasta va coborî la preferință. Îți sugerez să încerci amândouă și să vezi care se lipeste de tine.
Așa cum am spus, am ales să folosesc Gulp pentru că îmi place mai bine API-ul mai curat, dar sunt foarte confortabil folosind Grunt dacă un proiect o cheamă. Ce ar trebui nu se citește că domnul Know-it-all spune că Gulp este mai bun și acceptă-l. Deși există diferențe, nu există un câștigător clar și ambele proiecte pot și vor coexista. Încercați-le și faceți-vă propriile minți.
Notă: este posibil să doriți să luați în considerare opiniile utilizatorilor precum Keith Cirkel (consultant Javascript) care vă sfătuiește să utilizați nici. În interesul lui De ce ar trebui să nu mai folosim articolul Grunt & Gulp, sugerează să folosiți npm.
Citirea în continuare
Există multe alte articole excelente despre acest subiect. Aș recomanda în mod serios oricare dintre următoarele pentru citirea ulterioară; nu doare niciodată să citească ce au de spus ceilalți!
- Grunt vs Gulp - Dincolo de numere (mulțumiri speciale pentru exemple clare)
- Gulp, Grunt, orice ar fi
- Alegeți: Grunt, Gulp sau npm?
- Viteză de încercare Gulp și Grunt
- De ce ar trebui să nu mai folosim Grunt & Gulp
- Construiește războaie (utilizați săgețile pentru a naviga)
- Nu este nevoie să grăbiți, luați un gulp de aer proaspăt