Напоследък създадох няколко шаблонни настройки за frontend проекти и докато правех това, се зарових във всички различни настройки на стека, като се фокусирах главно върху фазата на изграждане и компилиране. Намерих някои мнителни блогове, които наистина предпочитат един пред друг, но след това в коментарите често възниква наистина разгорещена дискусия, обсъждаща плюсовете и минусите. Мисля, че всички инструменти имат своите цели и съм благодарен, че съществуват. Решението кой да се използва наистина зависи от променливи като съществуващите познания, размера на проекта(ите) и размера на екипа/организацията.
Кога какво да използвам според мен?
- npm скриптове: много големи проекти или много проекти, които споделят общи задачи; Много разработчици, които допринасят за тези проекти с различен опит; Фирми, работещи по различни проекти;
- Webpack: много ясни проекти за уебсайтове; Бързо време за доставка; Ниско количество разработчици;
- Grunt / Gulp:директни / по-малко ясни проекти; за екипи, които имат споделени знания за един от тези изпълнители на задачи; единични, еднократни проекти;
npm скриптове
С npm скриптове имате директен достъп до всички npm пакети, които непрекъснато се разрастват. Нямате слой абстракция, който да овладеете, така че ако работите с голямо количество хора и/или върху много различни проекти, npm скриптовете изглеждат добре подходящи. Вашите задачи и конфигурации са лесни за интегриране и размяна.
Уебпакет
Webpack е по-скоро инструмент, базиран на конвенции. Има някои предположения за вашия работен процес и настройката на вашия проект. Този инструмент наистина блести, ако нямате много персонализирани стъпки и просто вървите с техния поток (помислете за групиране, минимизиране, транспилиране, линтинг и т.н.).
Grunt / Глътка
Според мен тези изпълняващи задачи държат нещо средно между Webpack и npm скриптове. Тяхната конфигурация е много по-ясна и ако вече сте запознати с едното или другото, е доста лесно да създадете настройка по ваш вкус и да започнете скоро.
Резюме
В този момент за хоби проекти/уебсайтове предпочитам webpack, тъй като не искам да мисля за настройката за разработка и просто да използвам техните конвенции, които често са подходящи за това.
Когато работя с компании на професионална основа, клоня към npm скриптове, защото намирам за по-лесно да привлека други разработчици в професията на създаване на компилации и инструменти. Не искам да се обезсърчават, защото първо трябва да научат grunt/gulp/webpack. Освен това е лесно просто да използваме пакета, от който се нуждаем, без да се налага да разчитаме на добавки.
Мисля, че прекъсвам grunt/gulp, защото всъщност нямам нужда от средата, но ако стартирам проект, който вече използва това, тогава ще се получи добре.