Bitka za gradnjo skript Gulp Vs Grunt
O tem, kako začeti z Gulpom, in kako začeti z Gruntom sem že pisal. Oba avtomatizirajte naše naloge, oba uporabite Node, in oba zahtevata od vas ustvarite naloge in namestite vtičnike neke vrste. Ampak ali se sprašujete o razliki med obema, ali celo, kar je bolje?
V tem članku se bom osredotočil predvsem na razlike med tema dvema projektoma ki vam lahko pomagajo pri odločanju, katera od obeh se vam zdi boljša zase. Uporabljam neko kodo, ki morda ni poznana. Če je, predlagam, da si pred začetkom preberete predhodno objavljene članke.
Več na Hongkiat.com
- Kako začeti z Gulpom
- Kako začeti z Gruntom
Hitrost
Glavna razlika med Gulp in Grunt je v tem kako se ukvarjajo s svojimi avtomatizacijskimi nalogami znotraj. Gulp uporablja tokove vozlišč, medtem ko Grunt uporablja temp datoteke. Dajmo to v preprosto angleško?
Predpostavimo, da bi radi napisali kodo SASS za vaš projekt. Želeli bi sestaviti vašo kodo SASS in jo potem morda zmanjšati.
Grunt roča s to uporabo posredniške datoteke ki so operacije V / I diska. Datoteka SASS se prevede in nato zapiše v začasno datoteko. Začasno datoteko uporablja samodejni predponec, nato pa se končni izdelek zapiše v ciljno datoteko.
Gulp skrbi za vse to v spomin. Vaša izvorna datoteka SASS je prevedena, rezultat se posreduje samodejnemu prepakirniku, ne da bi bil zapisan v datoteko, nato pa se izpisuje ciljna datoteka.
V primerjavi z operacijami, ki so shranjene v pomnilniku, so zapiski na disk počasni, kar pomeni, da Gulp ima veliko prednost v hitrosti (za zdaj). Primerjavo hitrosti je naredil tech.tmw, ki kaže, da je večina nalog na Gulpu vsaj dvakrat hitrejša. Čeprav to ni bila izredno znanstvena študija, je težnja tam in sem videl isto s svojimi projekti. Toda kako velik je vpliv razlike v hitrosti?
Razlika v sekundah
Za večino projektov to ne bo pomembno. Večina projektov je majhnih. Ko ustvarjate WordPress temo ali kaj podobnega, je število datotek, s katerimi morate delati, v razumnih mejah. Res ni važno, če so vaši slogi sestavljeni v 400ms ali 800ms.
Poleg tega je lahko večina projektov strukturirani tako, da se lahko izognejo nekaterim najbolj intenzivnim vprašanjem. Če imate 50 datotek SASS, jih lahko prav tako hitro povežete med razvojem, da jih ne bo treba samodejno popravljati ali pa jih zmanjšati. Slik ni treba optimizirati vsakič, ko shranite projekt, in tako naprej.
Tudi ko resnično potrebujete velike pištole, ker delate na uprizoritvenem strežniku ali ko posodabljate skladišče, je vgrajen čas 5 sekund ali 9 sekund veliko razliko?
Na vrh vsega, Grunt bo dodal podporo za cevi v prihajajoči 0.5 izdaji, ki bo bistveno pospešila stvari, zaradi česar bo to sporno vprašanje.
Skupnost
Grunt je že veliko dlje kot Gulp, zato ima veliko uporabniško bazo. Grunt trenutno prejme približno 37.000 prenosov na dan v povprečju, Gulp dobi malo več kot polovico, približno 23.000 mark. Ob tem je Gulp prisoten šele leto in pol, zaradi česar je to število ugledno najmanj.
Grunt trenutno ima več kot 4000 pluginov, medtem ko ima Gulp več kot 1200 vtičnikov. Po Googlovih trendih več ljudi išče Grunt povezane stvari, obstaja več forumov, ki se ukvarjajo z njim in na splošno več podpore skupnosti.
Seveda Gulp prihaja, kar pomeni, da je to dolgoročno verjetno izravnali. Vendar pa je to ovira za nekatere razvijalce, zlasti tiste, ki delajo na projektih, ki temeljijo na Gruntu.
Rad bi poudaril, da so skupnosti za obe zelo lepo. Kolikor vem, je odnos med voditelji v vsaki skupnosti neverjeten in bi moral služiti kot zgled vsem. Ustvarjalec Gulpa je dejansko pomagal pisatelju primerjave hitrostnih testov izboljšati časovno natančnost, ki vodi do zmanjšanja časovnih razlik. To imenujem gospod!
Konfiguracija kode vs
Očitno je to prelomna točka za mnoge, toda če sem iskren, tega vprašanja ne vidim osebno.
Argument je tak: Gulp je dober primer kodiranje nad konfiguracijo je lahko dobra stvar, ko konfiguracija postane malce zmedena. Drugi ljudje pravijo, da je to res in Gulp je lažje preberite, težje je napisati Ker cevi so lahko malo zmedene.
Preden tehtam, je tukaj prvi primer v Grunt, potem v Gulpu:
grunt.initConfig (sass: dist: files: [src: 'dev / * .sssss', dest: '.tmp / styles', razširite: true, ext: '.css'], avtoprefixer : dist: files: [expand: true, cwd: '.tmp / styles', src: ', * / *. css', namesto: 'css / styles'], pazi: styles: files: ['dev / *. scss'], naloge: ['sass: dist', 'autoprefixer: dist']); grunt.registerTask ('privzeto', ['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', funkcija () gulp.run ('sass');); );
Moje mnenje je, da res ni pomembno. Seveda, če ste navadili na prvi način, boste morda morali porabiti nekaj časa, da ugotovite drugo, vendar je to res tudi obratno. Torej zame “to je zmedeno” argument je popolnoma neveljaven. Kaj nova metoda, ki ste jo izvedeli, je sprva zmedena, če pa vzamete čas, da razumete logiko vsakega, se vse izenači.
To je rekel, jaz osebno raje Gulpov API, ker je čister, in odraža način, kako razmišljam bolj kot Grunt. To je seveda popolnoma subjektivno sploh ne gre za Grunt, ampak za moje osebne preference.
Kako izbrati
Ne verjamem, da obstaja kakršnokoli vprašanje o tem, da sta Grunt in Gulp odlična orodja in pomagala ljudem reševati nešteto ur časa v preteklih letih. Grunt je za zdaj malo počasnejši, vendar ima veliko večjo skupnost. Gulp je hitrejši, ima čistejši API, vendar nima uporabniške baze.
Mislim, da se bo na koncu odločitev končala kontinuiteta, razpoložljivi vtičniki in prednost.
(1) Če že nekaj časa uporabljate Grunt / Gulp ste zadovoljni z njim, ni razloga za zamenjavo.
(2) Če je vaš projekt zahteva vtičnike ki jih ne zagotavlja Gulp in niste pripravljeni sami napisati enega, boste morali iti z Gruntom.
(3) Če zgornjih dveh premislekov ne velja za vas, se zdi, da so prednostne. Predlagam, da preizkusite oboje in videnje ki se drži z vami.
Kot sem rekel, sem se odločil za uporabo Gulpa, ker mi je všeč njegov čistejši API boljši, vendar sem z Gruntom povsem udobno, če projekt zahteva. Kaj bi morali ne Preberite, da je g. Know-it-all rekel, da je Gulp boljši in ga sprejmite. Čeprav obstajajo razlike, ni jasnega zmagovalca in oba projekta lahko in bosta sobivala. Preizkusite jih in pripravite svoj um.
Opomba: morda boste želeli razmisliti tudi o mnenjih uporabnikov, kot je Keith Cirkel (svetovalec za Javascript), ki vam svetuje, da uporabite niti. V svojem zanimivem Zakaj bi morali prenehati uporabljati Grunt & Gulp članek, predlaga uporabo npm.
Nadaljnje branje
Obstaja veliko drugih odličnih člankov o tej temi. Za nadaljnjo obravnavo bi iskreno priporočil katero koli od naslednjih besed; nikoli ne boli brati, kaj imajo drugi povedati!
- Grunt vs Gulp - Beyond the Numbers (posebno hvala za jasne primere)
- Gulp, Grunt, Karkoli
- Izberite: Grunt, Gulp ali npm?
- Speedtesting Gulp in Grunt
- Zakaj bi prenehali uporabljati Grunt & Gulp
- Build Wars (uporabite puščice za navigacijo)
- Ni treba Grunt, vzeti Gulp svežega zraka