Kotisivu » Toolkit » Rakennusskriptien taistelu Gulp Vs Grunt

    Rakennusskriptien taistelu Gulp Vs Grunt

    Olen jo kirjoittanut, miten aloittaa Gulpin kanssa ja miten aloittaa Gruntin kanssa. He molemmat automatisoida tehtävät, he molemmat käytä solmua, ja he molemmat vaativat sinua luoda tehtäviä ja asentaa laajennuksia jonkinlaista. Mutta mietitkö kahden tai jopa eron välistä eroa, mikä on parempi?

    Tässä artikkelissa keskityn pääasiassa näiden kahden hankkeen väliset erot mikä voi auttaa sinua päättämään, kumpi niistä, joita pidätte paremmaksi itsellesi. Käytän jotakin koodia, joka voi olla tuntematon. Jos näin on, suosittelen lukemalla kaksi aiemmin julkaistua artikkelia, ennen kuin aloitat.

    Lisätietoja on osoitteessa Hongkiat.com

    • Miten aloittaa Gulpin kanssa
    • Gruntin kanssa aloittaminen

    Nopeus

    Suurin ero Gulpin ja Gruntin välillä on miten ne käsittelevät automatisointitehtäviä sisäpuolella. Gulp käyttää solmuja, kun taas Grunt käyttää temp-tiedostoja. Let's laittaa se yksinkertaiseksi englanniksi?

    Oletetaan, että haluat kirjoittaa SASS-koodin projektille. Haluatko koota SASS-koodisi ja ehkä sitten minimoida sen.

    Grunt hoitaa tämän käyttämällä välitiedostoja jotka ovat levyn I / O-toimintoja. SASS-tiedosto on koottu ja kirjoitettu väliaikaiseen tiedostoon. Autoprefixer käyttää väliaikaista tiedostoa ja sitten lopullinen tuote kirjoitetaan kohdetiedostoon.

    Gulp hoitaa kaiken tämän muistissa. Lähde-SASS-tiedosto on koottu, tulos siirretään autoprefiksille ilman, että se kirjoitetaan tiedostoon, ja kohdetiedosto kirjoitetaan sitten ulos.

    Muistitoimintoihin verrattuna levykirjoitukset ovat hitaita, mikä tarkoittaa sitä Gulpilla on suuri nopeusetu (toistaiseksi). Nopeusvertailu tehtiin tech.tmw: llä, joka osoittaa, että useimmat tehtävät ovat vähintään kaksi kertaa nopeampia Gulpilla. Vaikka tämä ei ollut kovin tieteellinen tutkimus, suuntaus on olemassa ja olen nähnyt saman omien projektieni kanssa. Mutta kuinka suuri vaikutus on nopeuden ero?

    Ero sekunneissa

    Useimmissa projekteissa tämä ei ole väliä. Useimmat hankkeet ovat pieniä. Kun luot WordPress-teeman tai jotain vastaavaa, niiden tiedostojen lukumäärä, joihin sinun on työskenneltävä, on hyvin kohtuullisessa määrin. Ei todellakaan ole väliä, jos tyylitaulukot on koottu 400 ms tai 800 ms.

    Lisäksi useimmat projektit voivat olla rakenteeltaan sellainen, että joitakin intensiivisimmistä kysymyksistä voidaan välttää. Jos sinulla on 50 SASS-tiedostoa, voit yhtä nopeasti yhdistää ne kehitystyön aikana, eikä niitä tarvitse korjata tai pienentää. Sinun ei tarvitse optimoida kuvia aina, kun tallennat projektin, ja niin edelleen.

    Vaikka todella tarvitsisit suuria aseita, koska työntät työsi lavastuspalvelimeen tai jos päivität arkistoa, onko rakennettu 5 sekunnin tai 9 sekunnin aika paljon eroa?

    Kaiken kaikkiaan Grunt lisää tukea putkistolle tulevassa 0,5-versiossa, joka nopeuttaa asioita huomattavasti, mikä tekee siitä kiistanalaisen kysymyksen.

    Yhteisö

    Grunt on ollut paljon pidempi kuin Gulp, joten sillä on merkittävä käyttäjäkunta. Grunt saa tällä hetkellä noin 37 000 latausta päivässä keskimäärin, Gulp saa hieman yli puolet siitä, lähellä 23 000 merkkiä. Sitä vastoin Gulp on ollut vain puolitoista vuotta, joten tämä luku on kunnioitettava.

    Gruntilla on tällä hetkellä yli 4000 laajennusta, kun taas Gulpilla on yli 1200 pluginia. Googlen trendien mukaan enemmän ihmisiä etsii Gruntiin liittyviä asioita, on enemmän foorumeita, jotka käsittelevät sitä ja yleensä enemmän yhteisön tukea.

    Gulp on tietysti tulossa, mikä tarkoittaa sitä todennäköisesti tasaantua pitkällä aikavälillä. Tämä on kuitenkin este joillekin kehittäjille, erityisesti niille, jotka työskentelevät Grunt-projektiin.

    Haluaisin huomauttaa, että molempien yhteisöt ovat erittäin mukava. Sikäli kuin voin kertoa, että kunkin yhteisön johtajien välinen suhde on hämmästyttävä, ja sen pitäisi toimia esimerkkinä kaikille. Gulpin luoja itse asiassa auttoi nopeustesti-vertailun kirjoittajaa parantamaan ajoitustarkkuutta, joka johtaa aikaerojen vähenemiseen. Sitä kutsun herrasmieheksi!

    Koodin Vs-määritys

    Ilmeisesti tämä on monien kohdistuspiste, mutta rehellisesti sanottuna en näe asiaa henkilökohtaisesti.

    Väite on näin: Gulp on hyvä esimerkki koodi yli kokoonpanon voi olla hyvä asia, kun kokoonpano muuttuu hieman hämmentäväksi. Toiset sanovat, että vaikka tämä on totta ja Gulp on helpompi lukea, se on vaikeampaa kirjoittaa koska putkisto voi olla hieman sekava.

    Ennen kuin painan, tässä on sama esimerkki ensin Gruntissa ja sitten Gulpissa:

     grunt.initConfig (sass: dist: tiedostot: [src: 'dev / *. scss', dest: '.tmp / tyylejä', laajenna: true, ext: '.css'], autoprefixer : dist: tiedostot: [expand: true, cwd: .tmp / tyylejä ", src: ', * / *. css', dest: 'css / styles'], katso:  tyylejä: files: ['dev / *. scss'], tehtävät: ['sass: dist', 'autoprefixer: dist']); grunt.registerTask ('oletus', ['tyylit', 'katsella')); 
     gulp.task ('sass', toiminto () gulp.src ('dev / *. scss' .pipe (sass ()) .pipe (autoprefixer ()) .pipe (gulp.dest ('css / styles' ));); gulp.task ('oletus', toiminto () gulp.run ('sass'); gulp.watch ('dev / *. scss, toiminto () gulp.run (' sass ');); ); 

    Mielestäni se ei todellakaan ole väliä. Toki, jos olet tottunut ensimmäiseen tapaan, saatat joutua viettämään jonkin aikaa kuvitella toisen, mutta tämä pätee myös päinvastoin. Joten minulle “se on hämmentävää” argumentti on täysin virheellinen. Minkä tahansa uusi menetelmä, jonka opit, on aluksi sekava, mutta jos otat aikaa ymmärtää kunkin logiikan, se kaikki muuttuu ulos.

    Sanoin kuitenkin, että minäkin olen mieluummin Gulpin API koska se on puhdasja se heijastaa tapaa, jolla ajattelen läheisemmin kuin Grunt. Tämä on tietenkin täysin subjektiivinen ja se ei ole ongelma Gruntin kanssa, se on vain henkilökohtainen mieltymykseni.

    Miten valita

    En usko, että olisi kysymys siitä, että sekä Grunt että Gulp ovat suuria työkaluja ja auttaneet ihmisiä säästämään lukemattomia tunteja vuosien varrella. Grunt on nyt hieman hitaampi, mutta sillä on paljon suurempi yhteisö. Gulp on nopeampi, sillä on puhtaampi API, mutta käyttäjäpohjasta puuttuu.

    Mielestäni päätös tulee lopulta jatkuvuus, käytettävissä olevat lisäosat ja etusija.

    (1) Jos olet käyttänyt Grunt / Gulpia jo jonkin aikaa ja olet tyytyväinen siihen, ei ole mitään syytä vaihtaa.

    (2) Jos projekti vaatii laajennuksia jotka eivät ole Gulpin tarjoamia ja et ole valmis kirjoittamaan itseäsi, sinun täytyy mennä Gruntin kanssa.

    (3) Jos edellä mainitut kaksi seikkaa eivät koske sinua, se tulee mieluummin. Ehdotan kokeilemaan sekä näkemistä että näkemistä joista yksi tarttuu kanssasi.

    Kuten sanoin, päätin käyttää Gulpia, koska pidän sen puhtaamman API: n paremmalta, mutta olen täysin mukava käyttää Gruntia, jos projekti vaatii sitä. Mitä sinun pitäisi ei luetaan, että Mr. Know-it-kaikki sanoivat, että Gulp on parempi ja hyväksyy sen. Vaikka on eroja, ei ole selvää voittajaa ja molemmat hankkeet voivat ja tulevat olemaan rinnakkain. Kokeile niitä ja tee oma mielesi.

    Huomaa: kannattaa myös harkita käyttäjien mielipiteitä, kuten Keith Cirkel (Javascript-konsultti), joka suosittelee sinua käyttämään ei kumpikaan. Hänen mielenkiintoinen Miksi meidän pitäisi lopettaa Grunt & Gulp -artikkelin käyttö, hän ehdottaa npm: n käyttöä.

    Lue lisää

    Tästä aiheesta on monia muita erinomaisia ​​artikkeleita. Suosittelen lämpimästi seuraavaa lukemista varten; se ei koskaan sattuu lukemaan, mitä muut sanovat!

    • Grunt vs Gulp - numerojen ulkopuolella (kiitos selkeistä esimerkeistä)
    • Gulp, Grunt, mitä tahansa
    • Valitse: Grunt, Gulp tai npm?
    • Speedtesting Gulp ja Grunt
    • Miksi meidän pitäisi lopettaa Grunt & Gulp
    • Rakenna sodat (navigoi nuolilla)
    • Ei tarvitse Gruntia, ota Gulp of Fresh Air