Bitva o budování skriptů Gulp Vs Grunt
Už jsem psal o tom, jak začít s Gulpem a jak začít s Gruntem. Oba automatizovat naše úkoly, oba použít uzel, a oba vás potřebují vytvářet úlohy a instalovat pluginy nějakého druhu. Ale zajímá vás rozdíl mezi těmito dvěma, nebo dokonce lepšími?
V tomto článku se zaměřím hlavně na rozdíly mezi těmito dvěma projekty který může být faktorem, který vám pomůže rozhodnout se, který z těchto dvou můžete považovat za lepší. Budu používat nějaký kód, který může být neznámý. Pokud ano, doporučuji vám přečíst si dva dříve publikované články, než začnete.
Více na stránkách Hongkiat.com
- Jak začít s Gulpem
- Jak začít s Grunt
Rychlost
Hlavní rozdíl mezi Gulpem a Gruntem je jak se zabývají jejich automatizačními úkoly uvnitř. Gulp používá Node proudy, zatímco Grunt používá temp soubory. Dejme to do obyčejné angličtiny?
Předpokládejme, že byste chtěli napsat SASS kód pro svůj projekt. Chtěli byste zkompilovat kód SASS a pak ho možná minifikovat.
Grunt to zvládá soubory které jsou operace I / O disku. Soubor SASS je zkompilován a poté zapsán do dočasného souboru. Dočasný soubor je použit autofrefixem a konečný produkt je zapsán do cílového souboru.
Gulp se o to postará v paměti. Váš zdrojový soubor SASS je zkompilován, výsledek je předán autoprefixeru bez zápisu do souboru a cílový soubor je poté zapsán.
Ve srovnání s operacemi v paměti jsou zápisy na disk pomalé, což znamená, že to znamená Gulp má velkou rychlost výhodu (pro teď). Porovnání rychlosti bylo provedeno technikou tech.tmw, která ukazuje, že většina úkolů je minimálně dvakrát rychlejší. I když to nebyla nesmírně vědecká studie, existuje tendence a viděl jsem to stejné s vlastními projekty. Jak velký je však rozdíl v rychlosti?
Rozdíl Ve Vteřinách
Pro většinu projektů to nebude důležité. Většina projektů je malá. Když vytváříte téma WordPress nebo něco podobného, počet souborů, se kterými potřebujete pracovat, je v rámci rozumného limitu. Nezáleží na tom, zda jsou vaše stylesheety sestaveny do 400ms nebo 800ms.
Většina projektů může být strukturovány takovým způsobem, že některé z nejintenzivnějších otázek mohou být překonány. Pokud máte 50 souborů SASS, můžete je stejně rychle zřetězit, když je ve vývoji, není třeba je autoprefixovat nebo je minifikovat. Při každém uložení projektu a tak dále nebudete muset obrázky optimalizovat.
Dokonce i když opravdu potřebujete velké zbraně, protože tlačíte svou práci na server pro staging nebo když aktualizujete úložiště, dělá čas na 5 sekund nebo 9 sekund velký rozdíl?
Na začátek to všechno pryč, Grunt přidá podporu pro potrubí v nadcházejícím 0,5 vydání, které urychlí věci značně, což je bodový bod.
Komunita
Grunt byl kolem mnohem delší než Gulp, takže má významnou uživatelskou základnu. Grunt v současné době dostává v průměru přibližně 37 000 stažení denně, Gulp dostane o něco více než polovinu, což je téměř 23 000 značek. Jak už bylo řečeno, Gulp byl jen asi rok a půl, takže toto číslo bylo přinejmenším slušné.
Grunt má v současné době přes 4000 pluginů, zatímco Gulp má více než 1200 pluginů. Podle trendů Google více lidí vyhledává věci související s programem Grunt, existuje více fór, které se jím zabývají a obecně více podpory komunity.
Samozřejmě Gulp je nahoru a přichází, což znamená, že je to v dlouhodobém horizontu. To je však překážka pro některé vývojáře, zejména pro ty, kteří pracují na projektech Grunt.
Chtěl bych zdůraznit, že obě komunity jsou obě velmi pěkné. Pokud mohu říci, že vztah mezi vůdci v každé komunitě je úžasný, měl by sloužit jako příklad všem. Tvůrce Gulpu vlastně pomohl spisovateli porovnání testů rychlosti zlepšit přesnost časování, která vede ke snížení časových rozdílů. To je to, čemu říkám gentleman!
Konfigurace kódu Vs
Zdá se, že je to bod zlomu pro mnoho lidí, ale abych byl upřímný, nemohu tento problém vidět osobně.
Tento argument zní takto: Gulp je dobrý příklad kód přes konfiguraci může být dobrá věc, když konfigurace dostane trochu matoucí. Jiní říkají, že zatímco to je pravda a Gulp je snazší číst, je to těžší napsat protože potrubí může být trochu matoucí.
Než začnu vážit, tady je ten samý příklad první v Grunt, pak v Gulp:
grunt.initConfig (sass: dist: files: [src: 'dev / *. scss', dest: '.tmp / styles', rozbalte: true, ext: '.css'], autoprefixer : dist: files: [expand: true, cwd: '.tmp / styles', src: ', * / *. css', dest: 'css / styles'], sledovat: styles: files: ['dev / *. scss'], úkoly: ['sass: dist', 'autoprefixer: dist']); grunt.registerTask ('default', ['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');); );
Můj názor je, že na tom opravdu nezáleží. Jistě, pokud jste zvyklí na první způsob, možná budete muset strávit nějaký čas, když přijdete na druhou, ale to platí i naopak. Takže pro mě “je to matoucí” argument je zcela neplatný. Žádný nová metoda, kterou se naučíte, je zpočátku matoucí, ale pokud si vezmete čas, abyste pochopili logiku každého z nich, vše se zlepší.
To řekl, já osobně dávám přednost Gulpovo API, protože je čistéer, a to odráží způsob, jakým si myslím, že je více než Grunt. To je samozřejmě zcela subjektivní a není problém s Grunt vůbec, je to jen moje osobní preference.
Jak si vybrat
Nemyslím si, že je nějaká otázka o tom, že jak Grunt, tak Gulp jsou skvělými nástroji a pomohli lidem v průběhu let ušetřit nespočet hodin času. Grunt je zatím o něco pomalejší, ale má mnohem větší komunitu. Gulp je rychlejší, má čistší API, ale chybí mu uživatelská základna.
Myslím si, že rozhodnutí nakonec skončí kontinuita, dostupné pluginy a přednost.
(1) Pokud jste na chvíli používali Grunt / Gulp a jste s tím spokojeni, není důvod přepínat.
(2) Pokud váš projekt vyžaduje pluginy které nejsou poskytovány Gulp a nejste připraveni napsat sami sebe, budete muset jít s Grunt.
(3) Pokud se na vás výše uvedené dvě úvahy nevztahují, bude upřednostňováno. Navrhuji vyzkoušet si to a vidět který se vám drží.
Jak jsem řekl, rozhodl jsem se použít Gulp, protože se mi líbí jeho čistší API lépe, ale jsem naprosto pohodlný pomocí Grunt, pokud to projekt vyžaduje. Co byste měli ne přečtěte si, že pan Know-it-all řekl, že Gulp je lepší a akceptuje ho. I když existují rozdíly, není jasný vítěz a oba projekty mohou a budou koexistovat. Vyzkoušejte je a vytvořte si vlastní mysl.
Poznámka: můžete také chtít zvážit názory uživatelů, jako je Keith Cirkel (konzultant Javascript), kteří vám doporučují používat ani. Ve svém zajímavém Proč bychom měli přestat používat článek Grunt & Gulp, navrhuje použít npm.
Další čtení
Existuje mnoho dalších vynikajících článků o tomto tématu. Já bych vřele doporučil některý z následujících pro další čtení; nikdy to nebolí číst, co jiní říkají!
- Grunt vs Gulp - mimo čísla (zvláštní poděkování za jasné příklady)
- Gulp
- Zvolte: Grunt, Gulp nebo npm?
- Speedtesting Gulp a Grunt
- Proč bychom měli přestat používat Grunt & Gulp
- Build Wars (pro navigaci použijte šipky)
- Není třeba Grunt, vezměte si Gulp of Fresh Air