Slaget om at bygge skrifter Gulp Vs Grunt
Jeg har allerede skrevet om, hvordan man kommer i gang med Gulp, samt hvordan man kommer i gang med Grunt. Dem begge automatisere vores opgaver, dem begge brug knudepunkt, og de begge kræver dig oprette opgaver og installer plugins af en slags. Men spørger du dig selv om forskellen mellem de to, eller endda, hvilket er bedre?
I denne artikel fokuserer jeg primært på forskellene mellem disse to projekter hvilket kan medvirke til at hjælpe dig med at beslutte, hvilke af de to du måske anser for dig selv. Jeg vil bruge nogle kode, som måske ikke er kendt. Hvis det er, foreslår jeg at læse gennem de to tidligere offentliggjorte artikler, før du kommer i gang.
Mere på Hongkiat.com
- Sådan kommer du i gang med Gulp
- Sådan kommer du i gang med Grunt
Hastighed
Hovedforskellen mellem Gulp og Grunt ligger i hvordan de håndterer deres automatiseringsopgaver på indersiden. Gulp bruger Node-strømme, mens Grunt bruger temp-filer. Lad os sætte det ind i ren engelsk, skal vi?
Antag at du vil skrive SASS-kode til dit projekt. Du vil gerne kompilere din SASS-kode og derefter måske reducere den.
Grunt håndterer dette ved hjælp af mellemliggende filer hvilke disk-I / O-operationer. Din SASS-fil er kompileret og derefter skrevet til en midlertidig fil. Den midlertidige fil bruges af autoprefixeren, og det sidste produkt skrives derefter til destinationsfilen.
Gulp tager sig af alt dette i-hukommelse. Din kilde-SASS-fil er kompileret, resultatet sendes til autoprefixeren uden at blive skrevet til en fil, og destinationsfilen bliver derefter udskrevet.
Sammenlignet med in memory-operationer, skriver disken langsom, hvilket betyder at Gulp har en stor hastighed fordel (for nu). En hastigheds sammenligning blev udført af tech.tmw, hvilket viser, at de fleste opgaver er mindst dobbelt så hurtige på Gulp. Selv om dette ikke var et enormt videnskabeligt studie, er tendensen der, og jeg har set det samme med mine egne projekter. Men hvor stor en effekt er forskellen i hastighed?
Forskel i sekunder
For de fleste projekter betyder det ikke noget. De fleste projekter er små. Når du opretter et WordPress-tema eller noget lignende, er antallet af filer, du skal arbejde med, godt inden for en rimelig grænse. Det er ligegyldigt, om dine stylesheets er samlet i 400ms eller 800ms.
Desuden kan de fleste projekter være struktureret på en sådan måde, at nogle af de mest intensive spørgsmål kan sidestappes. Hvis du har 50 SASS-filer, kan du lige så hurtigt sammenkæde dem, mens du er i udvikling, vil der ikke være behov for at autoprefix eller reducere dem. Du behøver ikke optimere billeder hver gang du gemmer et projekt osv.
Selv når du virkelig har brug for de store kanoner, fordi du skubber dit arbejde på en staging-server, eller når du opdaterer et lager, gør en byggetid på 5 sekunder eller 9 sekunder meget af en forskel?
For det første vil Grunt tilføre støtte til rørledninger i den kommende 0,5-udgivelse, som vil fremskynde tingene væsentligt, hvilket gør dette til et moot point.
Samfundet
Grunt har eksisteret meget længere end Gulp, så det har en betydelig brugerbase. Grunt modtager i øjeblikket ca. 37.000 downloads om dagen i gennemsnit, Gulp bliver lidt mere end halvdelen, nær 23.000 mark. Når det er sagt, har Gulp kun eksisteret i et og et halvt år, hvilket gør det tal til respekt for det mindste.
Grunt har i øjeblikket over 4000 plugins, mens Gulp har mere end 1200 plugins. Ifølge Google-trends søger flere mennesker efter Grunt-relaterede ting, der er flere fora, der beskæftiger sig med det og generelt mere fællesskabsstøtte.
Selvfølgelig er Gulp op og kommer, hvilket betyder at dette er sandsynligvis at udjævne i det lange løb. Dette er imidlertid en barriere for nogle udviklere, især de, der arbejder med Grunt-baserede projekter.
Jeg vil gerne påpege, at fællesskaberne for begge er ekstremt flot. Så vidt jeg kan fortælle, er forholdet mellem lederne i hvert samfund fantastisk og bør tjene som et eksempel for alle. Skaberen af Gulp har faktisk hjulpet forfatteren af hastighedstest sammenligningen forbedre timing nøjagtigheden, som fører til et fald i tidsforskelle. Det er det, jeg kalder en gentleman!
Kode Vs-konfiguration
Tilsyneladende er dette tippestedet for mange, men for at være ærlig kan jeg ikke se problemet her personligt.
Argumentet går således: Gulp er et godt eksempel på det kode over konfiguration kan være en god ting, når konfigurationen bliver lidt forvirrende. Andre mennesker siger at mens dette er sandt, og Gulp er lettere at Læs, det er sværere at skrive fordi rør kan være lidt forvirrende.
Før jeg går ind, er det samme eksempel først i Grunt, så i Gulp:
grunt.initConfig (sass: dist: files: [src: 'dev / * .scss', dest: '.tmp / styles', udvid: true, ext: '.css'], autoprefixer : dist: files: [expand: true, cwd: '.tmp / styles', src: ', * / * .css', dest: 'css / styles'] stilarter: files: ['dev / * .scss'], opgaver: ['sass: dist', 'autoprefixer: dist']); grunt.registerTask ('default', ['styles', 'watch']);
gulp.task ('sass', funktion () gulp.src ('dev / * .scss') .pipe (sass ()) .pipe (autoprefixer ()) .pipe (gulp.dest ('css / styles' ));); gulp.task ('default', funktion () gulp.run ('sass'); gulp.watch ('dev / * .scss', funktion () gulp.run ('sass');); );
Min mening er, at det virkelig er ligegyldigt. Selvfølgelig, hvis du er vant til den første vej, skal du måske bruge lidt tid på at finde ud af det andet, men det er sandt omvendt også. Så for mig, den “det er forvirrende” argumentet er helt ugyldigt. Nogen Ny metode du lærer er forvirrende i starten, men hvis du tager dig tid til at forstå hver enkelt logik, så går det ud.
Når det er sagt, foretrækker jeg personligt Gulp's API, fordi det er renter, og det afspejler den måde, jeg synes tættere på end Grunt. Dette er selvfølgelig helt subjektive og er ikke et problem med Grunt overhovedet, det er bare min personlige præference.
Hvordan man vælger
Jeg tror ikke, at der er nogen tvivl om, at både Grunt og Gulp er gode værktøjer og har hjulpet folk med at spare mange timer i løbet af årene. Grunt er lidt langsommere for nu, men har et meget større fællesskab. Gulp er hurtigere, har en renere API, men mangler brugerbase.
Jeg tror, at beslutningen i sidste ende kommer ned til kontinuitet, tilgængelige plugins og præference.
(1) Hvis du har brugt Grunt / Gulp i et stykke tid nu og du er tilfreds med det, der er ingen grund til at skifte.
(2) Hvis dit projekt kræver plugins som ikke leveres af Gulp og du ikke er villig til at skrive en selv, skal du gå med Grunt.
(3) Hvis ovenstående to overvejelser ikke gælder for dig, vil det komme ned til præference. Jeg foreslår at prøve begge og se hvilken stikker med dig.
Som jeg sagde valgte jeg at bruge Gulp, fordi jeg kan lide sin renere API bedre, men jeg er helt komfortabel ved at bruge Grunt, hvis et projekt kræver det. Hvad du skal ikke Det må læses, at Mr. Know-it-all sagde, at Gulp er bedre og accepterer det. Selvom der er forskelle, er der ingen klar vinder og begge projekter kan og vil eksistere sammen. Prøv dem og lav dit eget sind.
Bemærk: Du vil måske også overveje udtalelser fra brugere som Keith Cirkel (en Javascript-konsulent), der råder dig til at bruge ingen af dem. I hans interessante Hvorfor skulle vi stoppe med at bruge Grunt & Gulp artiklen, foreslår han at bruge npm.
Yderligere læsning
Der er mange andre gode artikler om dette emne. Jeg vil varmt anbefale noget af følgende til videre læsning; det gør aldrig ondt for at læse hvad andre har at sige!
- Grunt vs Gulp - Beyond the Numbers (særlig tak for de klare eksempler)
- Gulp, Grunt, uanset hvad
- Vælg: Grunt, Gulp eller npm?
- Speedtesting Gulp og Grunt
- Hvorfor skulle vi stoppe med at bruge Grunt & Gulp
- Byg krige (brug pilene til at navigere)
- Du behøver ikke at grunt, tag en frisk luft