The Battle Of Build Scripts Gulp Vs Grunt
Ik heb al geschreven over hoe je met Gulp aan de slag kunt en hoe je aan de slag kunt met Grunt. Zij allebei automatiseer onze taken, zij allebei gebruik Node, en ze vereisen allebei dat je dat doet taken maken en plug-ins installeren van een of andere soort. Maar vraag je je af over het verschil tussen de twee, of zelfs, wat beter is?
In dit artikel zal ik me vooral concentreren op de verschillen tussen deze twee projecten wat kan helpen om te beslissen welke van de twee je misschien beter voor jezelf vindt. Ik zal een code gebruiken die misschien onbekend is. Als dat zo is, raad ik aan om de twee eerder gepubliceerde artikelen te lezen voordat je aan de slag gaat.
Meer over Hongkiat.com
- Hoe aan de slag te gaan met Gulp
- Hoe aan de slag te gaan met Grunt
Snelheid
Het belangrijkste verschil tussen Gulp en Grunt ligt in hoe ze omgaan met hun automatiseringstaken aan de binnenkant. Gulp gebruikt Node-streams terwijl Grunt tijdelijke bestanden gebruikt. Laten we dat gewoon in het Engels zetten, zullen wij?
Stel dat u de SASS-code voor uw project wilt schrijven. Je zou je SASS-code willen compileren en die dan misschien verkleinen.
Grunt handelt dit af met tussenbestanden die schijf-I / O-bewerkingen zijn. Uw SASS-bestand wordt gecompileerd en vervolgens naar een tijdelijk bestand geschreven. Het tijdelijke bestand wordt gebruikt door de autoprefixer en het uiteindelijke product wordt vervolgens naar het doelbestand geschreven.
Gulp zorgt voor dit alles in het geheugen. Het SASS-bronbestand is gecompileerd, het resultaat is doorgegeven aan de autoprefixer zonder naar een bestand te zijn geschreven en het doelbestand is vervolgens uitgeschreven.
Vergeleken met bewerkingen in het geheugen zijn schrijfbewerkingen traag, wat betekent dat Gulp heeft een groot snelheidsvoordeel (voor nu). Een snelheidsvergelijking werd gedaan door tech.tmw waaruit blijkt dat de meeste taken op Gulp minstens twee keer zo snel zijn. Hoewel dit geen enorm wetenschappelijke studie was, is de neiging daar en ik heb hetzelfde gezien met mijn eigen projecten. Maar hoe groot een impact is, is het snelheidsverschil?
Verschil in seconden
Voor de meeste projecten doet dit er niet toe. De meeste projecten zijn klein. Wanneer u een WordPress-thema of iets dergelijks aanmaakt, is het aantal bestanden waarmee u moet werken binnen een redelijke limiet. Het maakt echt niet uit of uw stylesheets zijn gecompileerd in 400ms of 800ms.
Bovendien kunnen de meeste projecten zijn zodanig gestructureerd dat enkele van de meest intensieve problemen kunnen worden omzeild. Als u 50 SASS-bestanden hebt, kunt u ze net zo snel samenvoegen terwijl ze in ontwikkeling zijn, zodat ze niet automatisch moeten worden gefixeerd of verkleind. U hoeft geen beelden te optimaliseren telkens wanneer u een project opslaat, enzovoort.
Zelfs als je echt de grote wapens nodig hebt omdat je je werk naar een staging-server duwt of als je een repository bijwerkt, maakt een ingebouwde tijd van 5 seconden of 9 seconden een groot verschil?
Als klap op de vuurpijl voegt Grunt ondersteuning toe voor piping in de komende release van 0.5, wat de snelheid aanzienlijk zal versnellen, waardoor dit een moeilijk punt wordt.
De gemeenschap
Grunt bestaat al veel langer dan Gulp, het heeft dus een aanzienlijke gebruikersbasis. Grunt ontvangt momenteel gemiddeld ongeveer 37.000 downloads per dag, Gulp krijgt iets meer dan de helft van dat bedrag, dichtbij de grens van 23.000. Dat gezegd hebbende, Gulp bestaat nog maar anderhalf jaar, en dat aantal is op zijn zachtst gezegd respectabel.
Grunt heeft momenteel meer dan 4000 plug-ins, terwijl Gulp meer dan 1200 plug-ins heeft. Volgens Google-trends zoeken meer mensen naar Grunt-gerelateerde dingen, er zijn meer fora die ermee werken en over het algemeen meer community-ondersteuning.
Natuurlijk is Gulp up and coming wat betekent dat dit zo is waarschijnlijk zelfs op de lange termijn. Dit is echter een barrière voor sommige ontwikkelaars, vooral degenen die Grunt-gebaseerde projecten gebruiken.
Ik zou erop willen wijzen dat de gemeenschappen voor beide zijn extreem aardig. Voor zover ik kan vertellen, is de relatie tussen de leiders in elke gemeenschap verbazingwekkend en zou ze als voorbeeld voor iedereen moeten dienen. De maker van Gulp hielp de schrijver van de snelheidstestvergelijking de timing-nauwkeurigheden verbeteren, wat leidde tot een afname van tijdsverschillen. Dat is wat ik een heer noem!
Code Vs-configuratie
Blijkbaar is dit het omslagpunt voor velen, maar om eerlijk te zijn, ik kan het probleem hier niet persoonlijk zien.
Het argument gaat als volgt: Gulp is daar een goed voorbeeld van code over configuratie kan een goede zaak zijn als configuratie een beetje verwarrend wordt. Anderen zeggen dat terwijl dit waar is en Gulp gemakkelijker is lezen, het is moeilijker om schrijven omdat piping kan een beetje verwarrend zijn.
Voordat ik ingewicht, is hier hetzelfde voorbeeld eerst in Grunt, dan in Gulp:
grunt.initConfig (sass: dist: bestanden: [src: 'dev / *. scss', dest: '.tmp / styles', expand: true, ext: '.css'], autoprefixer : dist: bestanden: [expand: true, cwd: '.tmp / styles', src: ', * / *. css', dest: 'css / styles'], watch: stijlen: bestanden: ['dev / *. scss'], taken: ['sass: dist', 'autoprefixer: dist']); grunt.registerTask ('standaard', ['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', function () gulp.run ('sass');); );
Mijn mening is dat het er echt niet toe doet. Natuurlijk, als je de eerste manier gewend bent, moet je misschien wat tijd besteden aan het uitzoeken van de tweede, maar dit is ook waar anders. Dus voor mij, de “het is verwarrend” argument is volledig ongeldig. Ieder nieuwe methode die je leert, is in het begin verwarrend, maar als je de tijd neemt om de logica van elk te begrijpen, lost het allemaal op.
Dat gezegd hebbende, geef ik er persoonlijk de voorkeur aan Gulp's API omdat deze schoon iseh, en het weerspiegelt de manier waarop ik meer nadenk dan Gegrom. Dit is natuurlijk volledig subjectief en het is helemaal geen probleem met Grunt, het is gewoon mijn persoonlijke voorkeur.
Hoe te kiezen
Ik denk niet dat er enige twijfel is over het feit dat zowel Grunt en Gulp geweldige hulpmiddelen zijn en mensen hebben geholpen om talloze uren te besparen door de jaren heen. Grunt is nu een beetje langzamer, maar heeft een veel grotere community. Gulp is sneller, heeft een schonere API, maar mist de gebruikersbasis.
Ik denk dat de beslissing uiteindelijk zal komen continuïteit, beschikbare plug-ins en voorkeur.
(1) Als je Grunt / Gulp al een tijdje gebruikt en je bent er blij mee, er is geen reden om over te schakelen.
(2) Als uw project vereist plug-ins die niet worden aangeboden door Gulp en je bent niet bereid om er zelf een te schrijven, je moet met Grom gaan.
(3) Als de bovenstaande twee overwegingen niet op u van toepassing zijn, komt dit neer op voorkeur. Ik raad aan om beide te proberen en te zien welke je bijblijft.
Zoals ik al zei, heb ik ervoor gekozen om Gulp te gebruiken omdat ik de schonere API beter vind, maar ik voel me prima als ik Grunt gebruik als een project erom vraagt. Wat je zou moeten doen niet er wordt gelezen dat de heer Know-it-All zei dat Gulp beter is en het accepteert. Hoewel er verschillen zijn, is er geen duidelijke winnaar en beide projecten kunnen en zullen naast elkaar bestaan. Probeer ze uit en verzin je eigen gedachten.
Opmerking: misschien wilt u ook rekening houden met meningen van gebruikers zoals Keith Cirkel (een Javascript-consultant) die u adviseert te gebruiken geen van beide. In zijn interessante Waarom we zouden moeten stoppen met het gebruik van Grunt & Gulp-artikel, stelt hij voor om npm te gebruiken.
Verder lezen
Er zijn veel andere uitstekende artikelen over dit onderwerp. Ik zou het volgende van harte aanbevelen voor verder lezen; het doet nooit pijn om te lezen wat anderen te zeggen hebben!
- Grunt vs Gulp - Beyond the Numbers (bedankt voor de duidelijke voorbeelden)
- Gulp, Grom, wat dan ook
- Kies: Grunt, Gulp of npm?
- Speedtesting Gulp en grom
- Waarom zouden we stoppen met het gebruik van Grunt & Gulp
- Build Wars (gebruik de pijlen om te navigeren)
- Niet nodig om te grommen, neem een slok frisse lucht