Slaget ved å bygge skript Gulp Vs Grunt
Jeg har allerede skrevet om hvordan du kommer i gang med Gulp, samt hvordan du kommer i gang med Grunt. De begge automatiser våre oppgaver, de begge bruk knutepunkt, og de krever begge dere lag oppgaver og installer plugins av noe slag. Men lurer du på forskjellen mellom de to, eller enda, som er bedre?
I denne artikkelen vil jeg fokusere hovedsakelig på forskjellene mellom disse to prosjektene noe som kan bidra til å bestemme hvilken av de to du kanskje anser bedre for deg selv. Jeg vil bruke noen kode som kan være ukjent. Hvis det er, foreslår jeg å lese gjennom de to tidligere publiserte artiklene før du kommer i gang.
Mer på Hongkiat.com
- Hvordan komme i gang med Gulp
- Hvordan komme i gang med Grunt
Hastighet
Hovedforskjellen mellom Gulp og Grunt ligger i hvordan de håndterer sine automatiseringsoppgaver på innsiden. Gulp bruker Node-strømmer mens Grunt bruker tempfiler. La oss sette det inn i ren engelsk, skal vi?
Anta at du vil skrive SASS-kode for prosjektet ditt. Du ønsker å kompilere SASS-koden din og kanskje kanskje redusere den.
Grunt håndterer dette ved hjelp av mellomliggende filer hvilke disk-I / O-operasjoner. Din SASS-fil er kompilert og deretter skrevet til en midlertidig fil. Den midlertidige filen brukes av autoprefixeren og så er sluttproduktet skrevet til destinasjonsfilen.
Gulp tar vare på alt dette i minne. Din kilde SASS-fil er kompilert, resultatet blir sendt til autoprefixeren uten å bli skrevet til en fil og destinasjonsfilen blir deretter skrevet ut.
Sammenlignet med minnefunksjoner, skriver disken sakte, noe som betyr at Gulp har en stor fordel (for nå). En fartssammenligning ble utført av tech.tmw som viser at de fleste oppgaver er minst dobbelt så fort på Gulp. Selv om dette ikke var en enorm vitenskapelig studie, er tendensen der, og jeg har sett det samme med mine egne prosjekter. Men hvor stor en innvirkning er forskjellen i fart?
Forskjell i sekunder
For de fleste prosjekter vil dette ikke være noe som helst. De fleste prosjektene er små. Når du oppretter et WordPress-tema eller noe lignende, må antall filer du trenger å jobbe med, være innenfor en rimelig grense. Det spiller ingen rolle om stilarkene dine blir samlet i 400ms eller 800ms.
Videre kan de fleste prosjekter være strukturert på en slik måte at noen av de mest intensive problemene kan sidestappes. Hvis du har 50 SASS-filer, kan du like kort sammenkoble dem mens du er i utvikling, det er ikke nødvendig å autoprefix eller redusere dem. Du trenger ikke å optimalisere bilder hver gang du lagrer et prosjekt, og så videre.
Selv når du virkelig trenger de store våpenene fordi du skyver arbeidet på en oppstartsserver eller når du oppdaterer et lager, gjør en innebygd tid på 5 sekunder eller 9 sekunder mye av en forskjell?
På toppen av alt, vil Grunt legge til støtte for røring i den kommende 0,5-utgivelsen, noe som vil øke hastighetene raskt, noe som gjør dette til et høydepunkt.
Samfunnet
Grunt har eksistert mye lenger enn Gulp, så det har en betydelig brukerbase. Grunt mottar for øyeblikket ca 37 000 nedlastinger om dagen i gjennomsnitt, blir Gulp litt mer enn halvparten, nær 23 000 mark. Når det er sagt, har Gulp bare eksistert i et og et halvt år, noe som gjør at nummeret respektabelt er minst sagt.
Grunt har for øyeblikket over 4000 plugins, mens Gulp har mer enn 1200 plugins. Ifølge Google-trender søker flere personer etter Grunt-relaterte ting, det er flere fora som omhandler det og generelt mer fellesskapsstøtte.
Selvfølgelig er Gulp opp og kommer, noe som betyr at dette er sannsynligvis til og med ute i det lange løp. Dette er imidlertid en barriere for noen utviklere, spesielt de som arbeider med Grunt-baserte prosjekter.
Jeg vil påpeke at samfunnene for begge er veldig hyggelig. Så langt jeg kan fortelle forholdet mellom lederne i hvert samfunn er fantastisk, og bør tjene som et eksempel for alle. Skaperen av Gulp faktisk hjalp forfatteren av hastighetstest sammenligningen forbedre timing nøyaktighet som fører til en reduksjon i tidsforskjeller. Det er det jeg kaller en gentleman!
Kode Vs-konfigurasjon
Tilsynelatende er dette tipping point for mange, men for å være ærlig, kan jeg ikke se problemet her personlig.
Argumentet går slik: Gulp er et godt eksempel på det kode over konfigurasjon kan være en god ting når konfigurasjonen blir litt forvirrende. Andre mennesker sier at mens dette er sant og Gulp er lettere å lese, det er vanskeligere å skrive fordi rør kan være litt forvirrende.
Før jeg legger meg inn, er det samme eksempel først i Grunt, så i Gulp:
grunt.initConfig (sass: dist: files: [src: 'dev / * .scss', dest: '.tmp / stiler', utvid: true, ext: '.css'], autoprefixer : dist: files: [expand: true, cwd: '.tmp / stiler', src: ', * / *. css', dest: 'css / styles'] stiler: files: ['dev / * .scss'], oppgaver: ['sass: dist', 'autoprefixer: dist']); grunt.registerTask ('standard', ['stiler', 'watch']);
gulp.task ('sass', funksjon () gulp.src ('dev / * .scss') .pipe (sass ()) .pipe (autoprefixer ()) .pipe (gulp.dest ('css / styles' ));); gulp.task ('default', funksjon () gulp.run ('sass'); gulp.watch ('dev / * .scss', funksjon () gulp.run ('sass');); );
Min mening er at det egentlig ikke betyr noe. Jo, hvis du er vant til den første måten, må du kanskje bruke litt tid på å finne ut det andre, men dette er sant omvendt også. Så for meg, “det er forvirrende” argumentet er helt ugyldig. Noen Ny metode du lærer er forvirrende først, men hvis du tar deg tid til å forstå logikken til hver, går det ut.
Når det er sagt, foretrekker jeg personlig Gulp's API fordi den er rener, og det gjenspeiler måten jeg tenker nærmere på enn Grunt. Dette er selvsagt helt subjektiv og er ikke et problem med Grunt i det hele tatt, det er bare min personlige preferanse.
Hvordan velge
Jeg tror ikke det er noen spørsmål om det faktum at både Grunt og Gulp er gode verktøy og har hjulpet folk med å spare utallige timer over tidene. Grunt er litt tregere for nå, men har et mye større fellesskap. Gulp er raskere, har en renere API, men mangler brukerbasen.
Jeg tror at beslutningen til slutt kommer ned til kontinuitet, tilgjengelige plugins og preferanse.
(1) Hvis du har brukt Grunt / Gulp for en stund nå og du er fornøyd med det, det er ingen grunn til å bytte.
(2) Hvis prosjektet ditt krever plugins som ikke er levert av Gulp, og du er ikke villig til å skrive en selv, må du gå med Grunt.
(3) Hvis ovennevnte to overvägelser ikke gjelder for deg, vil det komme ned til preferanse. Jeg foreslår at du prøver både og ser hvilken stikker med deg.
Som jeg sa, valgte jeg å bruke Gulp fordi jeg liker sin renere API bedre, men jeg er helt komfortabel med å bruke Grunt hvis et prosjekt krever det. Hva du burde ikke gjør leser at Mr. Know-it-all sa at Gulp er bedre og aksepterer det. Mens det er forskjeller, er det ingen klar vinner og begge prosjekter kan, og vil, eksistere sammen. Prøv dem og utgjør ditt eget sinn.
Merk: Du vil kanskje også vurdere meninger fra brukere som Keith Cirkel (En Javascript-konsulent) som anbefaler deg å bruke ingen. I hans interessante Hvorfor bør vi slutte å bruke Grunt & Gulp-artikkelen, foreslår han at han bruker npm.
Videre lesning
Det er mange andre gode artikler om dette emnet. Jeg vil hjertelig anbefale noen av følgende for videre lesing; det gjør aldri vondt for å lese hva andre har å si!
- Grunt vs Gulp - Beyond the Numbers (spesiell takk for de klare eksemplene)
- Gulp, Grunt, uansett
- Velg: Grunt, Gulp eller npm?
- Speedtesting Gulp og Grunt
- Hvorfor bør vi slutte å bruke Grunt & Gulp
- Bygg krig (bruk pilene for å navigere)
- Du trenger ikke å Grunt, ta en Gulp of Fresh Air