Do czego służy Grunt?

Próbuję dostać się do Grunt, który jestem nowy, ale nie rozumiem jego użyteczności.

Rozumiem, że jest to taskrunner. Rozumiem, że może być używany do robienia rzeczy takich jak bundle, uglify, jshint, minify, itp itp, wszystko, co można przekształcić w zadanie Skryptowe.

Ale nie widzę w tym żadnej przewagi. Prawie wszystkie z nich można uruchomić z linii poleceń, co oznacza, że można je po prostu połączyć za pomocą prostego skryptu powłoki. Wydaje mi się, że konfigurowanie plików grunt + gruntfiles i pisanie zadań to więcej pracy niż pisanie skryptu powłoki, a nie mniej.

Co mi w tym umyka?

Author: Aerovistae, 2015-03-22

2 answers

Grunt jest w zasadzie menedżerem budowania / zadań napisanym na NodeJS. Nazwałbym to stosem NodeJS odpowiednikiem Ant dla Javy. Oto kilka typowych scenariuszy, w których chciałbyś użyć grunt:

  1. masz projekt z plikami javascript wymagającymi minifikacji i ogólnie generowania kompilacji front-end osobno (w przypadku, gdy używasz say JAVA do backendu). (grunt-contrib-uglify )
  2. Kiedy zapisujesz kod na komputerze podczas tworzenia, chcesz przeglądarka do automatycznego przeładowania strony (może wydawać się małą rzeczą ,ale uwierz mi, zaoszczędziło mi to wiele czasu). (Live reload )
  3. Kiedy programista zapisuje kod na swojej maszynie, chce, aby pokazano wyczerpującą listę błędów JS / ogólnych naruszeń najlepszych praktyk. (grunt-contrib-jshint )
  4. masz projekt z plikami SASS / LESS, które muszą być skompilowane do plików CSS na maszynie programistów podczas tworzenia, na przykład za każdym razem, gdy zapisuje SASS plik, chcesz, aby został skompilowany do pliku CSS automatycznie, do włączenia na swojej stronie. (grunt-contrib-sass )
  5. masz zespół programistów front end, którzy pracują nad interfejsem użytkownika, i zespół programistów backend pracujących na backend, chcesz, aby deweloperzy front end używać backend REST API bez konieczności kompilacji i wdrażania kodu za każdym razem na własnych maszynach. Jeśli zastanawiasz się, nie jest to możliwe w przypadku typowej konfiguracji serwera www, ponieważ XHR nie może być cross-domeny przez przeglądarkę. Grunt może skonfigurować dla Ciebie proxy przekierowujące żądania XHR na twoim własnym systemie w ramach serwera grunt connect do innego systemu! ( grunt-contrib - proxy, grunt-contrib-connect)

Nie sądzę, aby twój skrypt powłoki mógł zrobić to wszystko. Podsumowując, tak, tworzenie pliku Gruntfile.js jest nudny dla kogoś, kto miał małą ekspozycję na javascript / jest nowy w nodeJS, przeszedłem przez te same bóle co uczący się, ale Grunt jest niesamowity kawałek oprogramowania. DO zainwestuj czas, aby skonfigurować odpowiedni plik gruntowy.js za Twój front endowy projekt, a podziękujesz Bogu za ułatwienie Ci życia:)

Advantage vs shell script:

  1. Jeśli piszesz skrypt powłoki dla każdego z tych zadań, to jest żmudne, aby utrzymać, a następnie dostosować do każdego z Twoich potrzeb. Gruntfile.js jest całkiem proste. istnieje config, który init go z, określające, jakie zadania chcesz wykonać, źródła i cele dla każdy.

  2. Integracja z generatorami nasion projektu Yeoman, Gulp jest kolejnym ważnym czynnikiem do rozważenia. Yeoman i Gulp pochodzą z Gruntfile.js " z inteligentnymi ustawieniami domyślnymi. Dla kogoś, kto jest jedynym użytkownikiem interfejsu w swoim zespole, jest to dla mnie bezcenne!

  3. Dla kogoś, kto pracuje nad technologiami frontend, jeśli masz więcej niż jedną osobę pracującą z Tobą, dość łatwo jest im poznać Grunt, który jest już dobrze udokumentowany wieloma odpowiedziami na tak, niż poznać skrypty powłoki. To może być czynnikiem w dużych zespołach.

  4. Liczne wtyczki do Grunt rozszerzają podstawową funkcjonalność. Chyba, że skrypt powłoki jest bardzo popularny, i bardzo modułowy, nie widzę wtyczek budowanych dla niego. Obejmuje to również włączenie nowych technologii front-end do twojego projektu. Powiedzmy, że jeśli chcesz jutro użyć maszynopisu w swoim projekcie, Twój skrypt powłoki będzie musiał to włączyć i rozliczyć się z tym własnym wysiłkiem. Z Grunt, to tak proste jak "npm install" i dodanie config.

 124
Author: shashanka n,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-03-22 05:00:36

Mimo że Zgadzam się z większością zalet wskazanych w Accepted Answer, nadal muszę wziąć pod uwagę wady, które zostały podkreślone przez Keitha Cirkela w Dlaczego powinniśmy przestać używać Grunt & Gulp

Tak więc niektóre zalety są obalane przez koszty ogólne Grunt i przynajmniej powinieneś wziąć to wszystko pod uwagę w swojej ostatecznej decyzji o użyciu Grunt, lub nie.

 6
Author: Miguel Gamboa,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-05-23 12:03:02