Битва скріптів побудувати Gulp Vs Grunt
Я вже писав про те, як почати роботу з Галпом, а також про те, як розпочати роботу з Грунтом. Обидва автоматизувати наші завдання, обидва використовувати Node, і обидва вони вимагають від вас створювати завдання та встановлювати плагіни якийсь. Але чи ви замислюєтеся про різницю між двома або навіть тим, що краще?
У цій статті я зосереджуся переважно на відмінності між цими двома проектами це може вплинути на те, щоб допомогти вам вирішити, який із двох ви можете вважати кращим для себе. Я буду використовувати код, який може бути незнайомим. Якщо це так, я пропоную прочитати дві раніше опубліковані статті, перш ніж розпочати роботу.
Докладніше на Hongkiat.com
- Як почати з Gulp
- Як розпочати роботу з Grunt
Швидкість
Основна відмінність між Gulp і Grunt полягає в як вони вирішують свої завдання автоматизації зсередини. Gulp використовує потоки вузлів, тоді як Grunt використовує тимчасові файли. Поставимо це на простому англійській мові?
Припустимо, ви хотіли б написати код SASS для вашого проекту. Ви хотіли б скомпілювати ваш код SASS, а потім, можливо, зменшити його.
Грунт обробляє це використання проміжні файли які є операціями вводу-виводу диска. Файл SASS компілюється, а потім записується у тимчасовий файл. Тимчасовий файл використовується автопрофіксером, після чого кінцевий продукт записується у файл призначення.
Про це Gulp піклується в пам'ять. Скомпільований ваш SASS-файл джерела, результат передається автоперехіднику без запису у файл, після чого виписується файл призначення.
У порівнянні з операціями в оперативній пам'яті, запис на диск є повільним, що означає, що Глотка має велику перевагу швидкості (зараз). Порівняння швидкості було зроблено tech.tmw, який показує, що більшість завдань, принаймні, вдвічі швидше на Gulp. Хоча це було не дуже наукове дослідження, тенденція є, і я бачив те ж саме з моїми власними проектами. Але наскільки великий вплив має різниця в швидкості?
Різниця за секунди
Для більшості проектів це не має значення. Більшість проектів невеликі. Коли ви створюєте тему WordPress або щось подібне, кількість файлів, з якими потрібно працювати, знаходяться в межах розумного обмеження. Це дійсно не має значення, якщо ваші таблиці стилів компілюються в 400 мс або 800 мс.
Більше того, більшість проектів може бути структуровані таким чином, що деякі з найбільш інтенсивних питань можуть бути усунені. Якщо у вас є 50 файлів SASS, ви можете так само швидко об'єднати їх у процесі розробки, не потрібно буде автопріфікс або мінімізувати їх. Вам не потрібно буде оптимізувати зображення кожного разу, коли ви зберігаєте проект, і так далі.
Навіть якщо вам дійсно потрібні великі гармати, оскільки ви штовхаєте свою роботу на проміжний сервер або коли ви оновлюєте сховище, вбудований час, що становить 5 секунд або 9 секунд, робить велику різницю?
На додаток до всього, Grunt додасть підтримку для трубопроводів у майбутньому випуску 0.5, який значно прискорить ситуацію, роблячи це спірним питанням.
Спільнота
Грунт був набагато довше, ніж Gulp, тому він має значну базу користувачів. Grunt в даний час отримує близько 37000 завантажень в день в середньому, Gulp отримує трохи більше, ніж половина, близько 23000 знака. Що сказаний, Gulp тільки навколо протягом року та половини, укладення що число поважне сказати найменше.
Grunt в даний час має більше 4000 плагінів, а Gulp має більше 1200 плагінів. Згідно з тенденціями Google більше людей шукають Grunt пов'язаних речей, Є більше форумів, які займаються нею і взагалі більше підтримки громади.
Звичайно, Gulp підіймається, і це означає, що це ймовірно, навіть у довгостроковій перспективі. Проте, це перешкода для деяких розробників, особливо тих, що працюють на основі проектів Grunt.
Хотілося б відзначити, що спільноти для обох є дуже приємно. Наскільки я можу сказати, взаємовідносини між лідерами в кожній громаді дивують і повинні служити прикладом для всіх. Творець Gulp фактично допоміг письменнику порівняння швидкості тесту покращити терміни точності котрий ведуть до зменшення часу різниці. Ось що я називаю джентльменом!
Конфігурація коду Vs
Очевидно, це є переломним моментом для багатьох, але, чесно кажучи, я не можу побачити проблему тут особисто.
Аргумент виглядає так: Глотка - це хороший приклад Конфігурація коду може бути добре, коли конфігурація стає трохи заплутаною. Інші люди говорять, що, хоча це правда, а ковчею легше read, важче писати оскільки трубопровід може бути трохи заплутаним.
Перед тим, як потрапити у вагу, ось той самий приклад спочатку в Grunt, потім у Gulp:
grunt.initConfig (sass: dist: files: [src: 'dev / * .sssss', dest: '.tmp / styles', розгортати: true, ext: '.css'], autoprefixer : dist: files: [expand: true, cwd: '.tmp / styles', src: ', * / *. css', dest: 'css / стилі'], дивіться: стилі: файли: ['dev / *. scss'], завдання: ['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', функція () gulp.run ('sass');); );
Я вважаю, що це не має значення. Звичайно, якщо ви звикли до першого способу, вам може знадобитися провести деякий час, розібравшись у другому, але це правда і навпаки. Так для мене “це заплутано” аргумент повністю недійсний. Будь-який Новий метод, який ви дізнаєтеся, спочатку є заплутаним, але якщо ви знайдете час, щоб зрозуміти логіку кожного з них, все це вирівнюється.
Тим не менш, я особисто віддаю перевагу API Gulp, оскільки він чистийер, і це відображає те, як я думаю, що я ближче, ніж Грант. Це звичайно повністю суб'єктивні і взагалі це не проблема з Грунтом, це лише мої особисті уподобання.
Як вибрати
Я не думаю, що є будь-яке питання про те, що і Grunt і Gulp є чудовими інструментами і допомагають людям зберігати незліченні години часу протягом багатьох років. Грунт зараз трохи повільніше, але має набагато більшу спільноту. Ковтка швидше, має більш чистий API, але відсутня база користувачів.
Я думаю, що рішення в кінцевому підсумку прийде безперервність, наявність плагінів і переваги.
(1) Якщо ви використовуєте Grunt / Gulp деякий час зараз і Ви задоволені цим, немає причин перемикатися.
(2) Якщо ваш проект потрібні плагіни які не надаються компанією Gulp, і ви не готові самостійно писати їх, вам потрібно піти з Grunt.
(3) Якщо вищезазначені два міркування не стосуються вас, то вони зводяться до переваг. Я пропоную спробувати як і бачити який прилипає до вас.
Як я вже сказав, я вирішив використовувати Gulp, тому що мені подобається його чистіший API краще, але я цілком комфортно використовую Grunt, якщо проект вимагає цього. Що потрібно ні чи читати, що пан Know-it-all сказав, що ковтати краще і прийняти його. Хоча є відмінності, немає чіткого переможця обидва проекти можуть і будуть співіснувати. Спробуйте їх і складіть свій власний розум.
Примітка: ви також можете розглянути думки користувачів, як Keith Cirkel (консультант Javascript), який радить використовувати ні. У своєму цікавому Чому ми повинні припинити використовувати Grunt & Gulp статтю, він пропонує використовувати npm.
Подальше читання
Є багато інших чудових статей з цієї теми. Щиро рекомендую будь-яке з наступних для подальшого читання; ніколи не шкодить читати те, що мають сказати інші!
- Grunt vs Gulp - поза цифрами (дякуємо за чіткі приклади)
- Ковчег, Грунт, Що завгодно
- Виберіть: Grunt, Gulp або npm?
- Швидкість тестування Ковчег і Грунт
- Чому ми повинні припинити користуватися Grunt & Gulp
- Build Wars (використовуйте стрілки для навігації)
- Не треба Grunt, взяти Gulp свіжого повітря