Напоследък създадох няколко шаблонни настройки за frontend проекти и докато правех това, се зарових във всички различни настройки на стека, като се фокусирах главно върху фазата на изграждане и компилиране. Намерих някои мнителни блогове, които наистина предпочитат един пред друг, но след това в коментарите често възниква наистина разгорещена дискусия, обсъждаща плюсовете и минусите. Мисля, че всички инструменти имат своите цели и съм благодарен, че съществуват. Решението кой да се използва наистина зависи от променливи като съществуващите познания, размера на проекта(ите) и размера на екипа/организацията.

Кога какво да използвам според мен?

  • npm скриптове: много големи проекти или много проекти, които споделят общи задачи; Много разработчици, които допринасят за тези проекти с различен опит; Фирми, работещи по различни проекти;
  • Webpack: много ясни проекти за уебсайтове; Бързо време за доставка; Ниско количество разработчици;
  • Grunt / Gulp:директни / по-малко ясни проекти; за екипи, които имат споделени знания за един от тези изпълнители на задачи; единични, еднократни проекти;

npm скриптове

С npm скриптове имате директен достъп до всички npm пакети, които непрекъснато се разрастват. Нямате слой абстракция, който да овладеете, така че ако работите с голямо количество хора и/или върху много различни проекти, npm скриптовете изглеждат добре подходящи. Вашите задачи и конфигурации са лесни за интегриране и размяна.

Уебпакет

Webpack е по-скоро инструмент, базиран на конвенции. Има някои предположения за вашия работен процес и настройката на вашия проект. Този инструмент наистина блести, ако нямате много персонализирани стъпки и просто вървите с техния поток (помислете за групиране, минимизиране, транспилиране, линтинг и т.н.).

Grunt / Глътка

Според мен тези изпълняващи задачи държат нещо средно между Webpack и npm скриптове. Тяхната конфигурация е много по-ясна и ако вече сте запознати с едното или другото, е доста лесно да създадете настройка по ваш вкус и да започнете скоро.

Резюме

В този момент за хоби проекти/уебсайтове предпочитам webpack, тъй като не искам да мисля за настройката за разработка и просто да използвам техните конвенции, които често са подходящи за това.

Когато работя с компании на професионална основа, клоня към npm скриптове, защото намирам за по-лесно да привлека други разработчици в професията на създаване на компилации и инструменти. Не искам да се обезсърчават, защото първо трябва да научат grunt/gulp/webpack. Освен това е лесно просто да използваме пакета, от който се нуждаем, без да се налага да разчитаме на добавки.

Мисля, че прекъсвам grunt/gulp, защото всъщност нямам нужда от средата, но ако стартирам проект, който вече използва това, тогава ще се получи добре.