Bitwa o budowanie skryptów Gulp Vs Grunt
Pisałem już o tym, jak zacząć z Gulpem, a także jak zacząć z Gruntem. Oni oboje automatyzuj nasze zadania, oni oboje użyj węzła, i oboje tego wymagają tworzyć zadania i instalować wtyczki jakiegoś rodzaju. Ale czy zastanawiasz się nad różnicą między tymi dwoma, a nawet lepszą?
W tym artykule skupię się głównie na różnice między tymi dwoma projektami co może pomóc w podjęciu decyzji, która z dwóch osób uzna za lepszą dla siebie. Będę używał jakiegoś kodu, który może być nieznany. Jeśli tak, sugeruję przeczytanie dwóch wcześniej opublikowanych artykułów, zanim zaczniesz.
Więcej na stronie Hongkiat.com
- Jak zacząć z Gulpem
- Jak zacząć z Gruntem
Prędkość
Główna różnica między Gulpem a Gruntem polega na tym jak radzą sobie ze swoimi zadaniami automatyzacji wewnątrz. Gulp używa strumieni Node, podczas gdy Grunt używa plików tymczasowych. Zróbmy to w prostym języku angielskim?
Załóżmy, że chcesz napisać kod SASS dla swojego projektu. Chciałbyś skompilować swój kod SASS i być może go zminimalizować.
Grunt obsługuje to użycie pliki pośrednie które są dyskowymi operacjami we / wy. Twój plik SASS jest kompilowany, a następnie zapisywany w pliku tymczasowym. Plik tymczasowy jest używany przez autoprefixer, a następnie produkt końcowy jest zapisywany w pliku docelowym.
Gulp zajmuje się tym wszystkim w pamięci. Twój źródłowy plik SASS jest kompilowany, wynik jest przekazywany do autoprefixer bez zapisywania do pliku, a następnie zapisywany jest plik docelowy.
W porównaniu do operacji w pamięci, zapisy na dysku są powolne, co oznacza, że Gulp ma dużą przewagę prędkości (Na razie). Porównanie prędkości zostało wykonane przez tech.tmw, które pokazuje, że większość zadań jest co najmniej dwa razy szybsza w Gulp. Chociaż nie było to badanie naukowe, tendencja jest i widziałem to samo w moich własnych projektach. Ale jak duży wpływ ma różnica prędkości?
Różnica w sekundach
Dla większości projektów to nie ma znaczenia. Większość projektów jest niewielka. Kiedy tworzysz motyw WordPress lub coś podobnego, liczba plików, z którymi musisz pracować, mieści się w rozsądnym limicie. To naprawdę nie ma znaczenia, jeśli twoje arkusze stylów są kompilowane w 400ms lub 800ms.
Ponadto większość projektów może być skonstruowane w taki sposób, że niektóre z najbardziej intensywnych problemów mogą zostać pominięte. Jeśli masz 50 plików SASS, możesz je równie szybko połączyć w trakcie tworzenia, nie będzie potrzeby ich autoprefikacji ani minimalizowania. Nie musisz optymalizować obrazów za każdym razem, gdy zapisujesz projekt i tak dalej.
Nawet wtedy, gdy naprawdę potrzebujesz dużych pistoletów, ponieważ wypychasz swoją pracę na serwer pomostowy lub aktualizujesz repozytorium, czy wbudowany czas 5 sekund lub 9 sekund ma duże znaczenie??
Na domiar wszystkiego Grunt doda obsługę pipingowania w nadchodzącym wydaniu 0.5, co znacznie przyspieszy, czyniąc z tego punkt sporny.
Społeczność
Grunt istnieje znacznie dłużej niż Gulp, więc ma znaczącą bazę użytkowników. Grunt otrzymuje średnio około 37 000 pobrań dziennie, Gulp dostaje nieco więcej niż połowę, w pobliżu 23 000 marek. Mając to na uwadze, Gulp istnieje już od półtora roku, co czyni tę liczbę godną szacunku.
Grunt ma obecnie ponad 4000 wtyczek, podczas gdy Gulp ma ponad 1200 wtyczek. Według trendów Google coraz więcej osób szuka rzeczy związanych z Gruntem, jest więcej forów, które się tym zajmują i ogólnie więcej wsparcia społeczności.
Oczywiście Gulp jest gotowy i oznacza, że tak jest najprawdopodobniej nawet w dłuższej perspektywie. Jest to jednak bariera dla niektórych deweloperów, zwłaszcza tych działających w oparciu o Grunt.
Chciałbym podkreślić, że społeczności dla obu są bardzo miło. O ile mogę powiedzieć, relacje między przywódcami w każdej społeczności są niesamowite i powinny służyć wszystkim za przykład. Twórca Gulp rzeczywiście pomógł autorowi porównania testu prędkości poprawić dokładność pomiaru czasu, co prowadzi do zmniejszenia różnic czasowych. To właśnie nazywam dżentelmenem!
Konfiguracja kodu Vs
Najwyraźniej jest to punkt krytyczny dla wielu, ale szczerze mówiąc, nie widzę tu problemu osobiście.
Argument wygląda następująco: dobrym przykładem jest Gulp konfiguracja kodowania może być dobra, gdy konfiguracja staje się nieco myląca. Inni mówią, że choć jest to prawdą, a Gulp jest łatwiejszy czytać, jest trudniej pisać bo orurowanie może być nieco mylące.
Zanim zacznę ważyć, oto ten sam przykład pierwszy w Grunt, a następnie w Gulp:
grunt.initConfig (sass: dist: files: [src: 'dev / *. scss', dest: '.tmp / styles', expand: true, ext: '.css'], autoprefixer : dist: files: [expand: true, cwd: '.tmp / styles', src: ', * / *. css', dest: 'css / styles'], patrz: styles: pliki: ['dev / *. scss'], zadania: ['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');); );
Moim zdaniem to naprawdę nie ma znaczenia. Jasne, jeśli jesteś przyzwyczajony do pierwszego sposobu, możesz poświęcić trochę czasu na wymyślenie drugiego, ale jest to również odwrotnie. Więc dla mnie “to jest mylące” argument jest całkowicie nieprawidłowy. Każdy nowa metoda, której się uczysz, na początku jest myląca, ale jeśli poświęcisz trochę czasu na zrozumienie logiki każdego, wszystko się wyrównuje.
Mimo to osobiście wolę API Gulpa, ponieważ jest czysteer, i odzwierciedla to sposób, w jaki myślę bardziej niż Grunt. To oczywiście całkowicie subiektywne i nie jest to problem z Gruntem, to tylko moje osobiste preferencje.
Jak wybrać
Nie wydaje mi się, aby istniało pytanie, że zarówno Grunt, jak i Gulp są świetnymi narzędziami i pomogły ludziom zaoszczędzić wiele godzin w ciągu lat. Grunt jest teraz trochę wolniejszy, ale ma znacznie większą społeczność. Gulp jest szybszy, ma czystsze API, ale brakuje mu bazy użytkowników.
Myślę, że decyzja ostatecznie sprowadza się do ciągłość, dostępne wtyczki i pierwszeństwo.
(1) Jeśli używasz Grunt / Gulp już teraz i jesteś z tego zadowolony, nie ma powodu, aby się zmieniać.
(2) Jeśli twój projekt wymaga wtyczek które nie są dostarczane przez Gulpa i nie jesteś przygotowany na samodzielne pisanie, musisz iść z Gruntem.
(3) Jeśli powyższe dwa względy nie mają zastosowania do ciebie, sprowadza się to do preferencji. Proponuję wypróbować zarówno i zobaczyć który z was się trzyma.
Jak już powiedziałem, zdecydowałem się użyć Gulp, ponieważ lepiej podoba mi się jego czystszy interfejs API, ale doskonale radzę sobie z Gruntem, jeśli projekt tego wymaga. Co powinieneś nie czy czytać, że pan Know-it-all powiedział, że Gulp jest lepszy i zaakceptować to. Chociaż istnieją różnice, nie ma wyraźnego zwycięzcy i oba projekty mogą i będą współistnieć. Wypróbuj je i wymyśl własne zdanie.
Uwaga: możesz również wziąć pod uwagę opinie użytkowników takich jak Keith Cirkel (konsultant Javascript), który radzi ci korzystać ani. W swoim interesującym Dlaczego powinniśmy przestać używać artykułu Grunt & Gulp, sugeruje użycie npm.
Dalsze czytanie
Istnieje wiele innych doskonałych artykułów na ten temat. Serdecznie polecam jeden z poniższych do dalszego czytania; nigdy nie boli czytanie tego, co inni mają do powiedzenia!
- Grunt vs Gulp - Beyond the Numbers (specjalne podziękowania za wyraźne przykłady)
- Gulp, Grunt, cokolwiek
- Wybierz: Grunt, Gulp lub npm?
- Speedtesting Gulp and Grunt
- Dlaczego powinniśmy przestać używać Grunt & Gulp
- Build Wars (użyj strzałek do nawigacji)
- Nie ma potrzeby Grunt, weź łyk świeżego powietrza