הקרב על בניית סקריפטים Gulp Vs Grunt
כבר כתבתי על איך להתחיל עם Gulp, כמו גם איך להתחיל עם Grunt. שניהם להפוך את המשימות שלנו לאוטומטיות, שניהם להשתמש הצומת - -, ושניהם דורשים ממך ליצור משימות ולהתקין תוספים מסוג כלשהו. אבל האם אתה תוהה על ההבדל בין השניים, או אפילו, וזה יותר טוב?
במאמר זה אני אתמקד בעיקר ב את ההבדלים בין שני פרויקטים אלה אשר גורם גורם לך להחליט איזה מבין שני אתה עשוי לראות טוב יותר עבור עצמך. אני יהיה להשתמש בקוד אשר עשוי להיות לא מוכר. אם כן, אני מציע לקרוא דרך שני מאמרים שפורסמו בעבר לפני שתתחיל.
עוד על Hongkiat.com
- כיצד להתחיל עם גמיעה
- כיצד להתחיל עם Grunt
מהירות
ההבדל העיקרי בין Gulp ו Grunt שקרים איך הם מתמודדים עם משימות האוטומציה שלהם מבפנים. גמיעה משתמשת בזרמי הצומת בזמן ש- Grunt משתמש בקבצי temp. בואו נניח את זה לאנגלית פשוטה, בסדר?
נניח שאתה רוצה לכתוב קוד SASS עבור הפרויקט שלך. אתה רוצה לקמפל קוד SASS שלך ואז אולי לצמצם את זה.
Grunt מטפל זה באמצעות קבצי ביניים אשר פעולות דיסק I / O. קובץ SASS שלך הוא הידור ולאחר מכן נכתב על קובץ זמני. הקובץ הזמני משמש את autoprefixer ואז המוצר הסופי נכתב לקובץ היעד.
הלגימה דואגת לכל זה לזכר. קובץ המקור SAS שלך הוא הידור, התוצאה מועברת אל autoprefixer מבלי להיות כתוב לקובץ ואת קובץ היעד הוא כתב אז את.
לעומת פעולות בזיכרון, כותב הדיסק הם איטיים כלומר לגימה יש יתרון מהיר (לעת עתה). השוואה מהירה נעשתה על ידי tech.tmw אשר מראה כי רוב המשימות הן לפחות פעמיים על גביע. אמנם זה לא היה מחקר מדעי מאוד הנטייה היא שם ראיתי את אותו הדבר עם הפרויקטים שלי. אבל כמה גדול של השפעה הוא ההבדל במהירות?
ההבדל בשניות
עבור רוב הפרויקטים זה לא משנה. רוב הפרויקטים קטנים. כאשר אתה יוצר נושא WordPress או משהו דומה מספר הקבצים שאתה צריך לעבוד עם הם גם בתוך גבול סביר. זה באמת לא משנה אם הם stylesheets הידור ב 400ms או 800ms.
יתר על כן, רוב הפרויקטים יכולים להיות מובנית בצורה כזו שניתן לעקוף חלק מהנושאים האינטנסיביים ביותר. אם יש לך 50 קבצים SASS אתה יכול פשוט לשרשר אותם במהירות תוך כדי הפיתוח, לא יהיה צורך autoprefix או להקטין אותם. לא תצטרך לבצע אופטימיזציה של תמונות בכל פעם שאתה שומר פרוייקט, וכן הלאה.
גם כאשר אתה באמת צריך את האקדחים הגדולים כי אתה דוחף את העבודה שלך על שרת הזמני או כאשר אתה מעדכן מאגר, עושה זמן בנוי של 5 שניות או 9 שניות לעשות הרבה הבדל?
לראש הדף את כל זה, Grunt יוסיף תמיכה צנרת במהדורה 0.5 הקרובה אשר יאיץ את הדברים במידה ניכרת, מה שהופך את זה נקודה.
הקהילה
Grunt כבר הרבה יותר זמן מאשר גביע כך יש בסיס משתמשים משמעותי. Grunt כרגע מקבל כ 37,000 הורדות ביום בממוצע, גביע מקבל קצת יותר ממחצית זה, ליד 23,000 מארק. עם זאת, ג 'ל היה רק בסביבה במשך שנה וחצי, מה שהופך את המספר הזה מכובד בלשון המעטה.
Grunt כרגע יש מעל 4000 plugins בעוד ג 'ולי יש יותר מ -1,200 plugins. על פי מגמות גוגל יותר אנשים מחפשים דברים הקשורים Grunt, יש יותר פורומים להתמודד עם זה בדרך כלל יותר תמיכה קהילתית.
כמובן גומע הוא למעלה בא וזה אומר שזה צפוי אפילו לצאת החוצה בטווח הארוך. עם זאת, זהו מכשול עבור מפתחים מסוימים, במיוחד אלה עובדים Grunt מבוססי פרויקטים.
אני רוצה לציין כי הקהילות עבור שניהם נחמד מאוד. עד כמה שאני יכול להגיד את היחסים בין מנהיגים בכל קהילה הוא מדהים, צריך לשמש דוגמה לכל. היוצר של Gulp למעשה עזר לכותב של מהירות הבדיקה השוואה לשפר את העיתוי דיוק אשר להוביל לירידה בהפרשי זמן. לזה אני קורא ג'נטלמן!
קוד Vs תצורה
כנראה שזה נקודת המפנה עבור רבים, אבל כדי להיות כנים, אני לא יכול לראות את הנושא כאן באופן אישי.
הוויכוח מתנהל כך: הלגימה היא דוגמה טובה לכך קוד על תצורה יכול להיות דבר טוב כאשר תצורה מקבל קצת מבלבל. אנשים אחרים אומרים כי בעוד זה נכון, ג 'ל הוא יותר קל לקרוא, זה יותר קשה לכתוב כי צנרת יכול להיות קצת מבלבל.
לפני שאני משקולת, הנה הדוגמא הראשונה בגראנט, ואחר כך בלגימה:
(sss: dist: files: [src: 'dev / *. scss', dest: '.tmp / styles', הרחב: true, ext: '.css', autoprefixer : dist: files: [Expand: true, cwd: '.tmp / styles', src: ', * / / * css', dest: 'css / styles', סגנונות: files: ['dev / *. scss'], משימות: ['sass: dist', 'autoprefixer: dist']; grunt.registerTask ('ברירת מחדל', ['סגנונות', 'צפייה']);
(css / סגנונות) (gpp.dest) (css / style). / gulp.task ('sass', הפונקציה ()) (gulp.src ('dev / *. scss') .pipe (sass ()) .pipe (autoprefixer ()) .pipe (gulp.dest )) ;;); gulp.task ('default', function () gulp.run ('sass'); gulp.watch ('dev / *. scss', function () gulp.run ('sass');); );
דעתי היא שזה באמת לא משנה. בטח, אם אתה רגיל הדרך הראשונה ייתכן שיהיה עליך להשקיע קצת זמן להבין את השני, אבל זה נכון להיפך גם כן. אז בשבילי, “זה מבלבל” הטיעון אינו חוקי לחלוטין. כל שיטה חדשה שאתה לומד היא מבלבלת בהתחלה, אבל אם אתה לוקח את הזמן כדי להבין את ההיגיון של כל אחד, כל זה evens החוצה.
עם זאת, אני אישית מעדיף Gulp של API כי זה נקיאה, והוא משקף את הדרך שבה אני חושב יותר מקרוב. זה כמובן סובייקטיבי לחלוטין וזה לא עניין עם Grunt בכלל, זה רק העדפה אישית שלי.
איך לבחור
אני לא חושב שיש כל שאלה לגבי העובדה כי הן Grunt ו Gulp הם כלי נהדר עזר לאנשים לחסוך אינספור שעות של זמן לאורך השנים. גרונט הוא קצת איטי לעת עתה, אבל יש קהילה הרבה יותר גדול. הלגימה מהירה יותר, בעלת ממשק API נקי, אך היא חסרה את בסיס המשתמשים.
אני חושב שההחלטה תסתכם בסופו של דבר המשכיות, תוספים זמינים ו העדפה.
(1) אם אתה משתמש Grunt / Gulp לזמן מה עכשיו אתה מאושר עם זה, אין סיבה לעבור.
(2) אם הפרויקט שלך דורש plugins אשר אינם מסופקים על ידי גביע ואתה לא מוכן לכתוב אחד בעצמך, תצטרך ללכת עם Grunt.
(3) אם שני שיקולים לעיל אינם חלים עליך זה יגיע העדפה. אני מציע לנסות את שניהם ואת רואה אשר אחד מקלות איתך.
כמו שאמרתי, בחרתי להשתמש גביע כי אני אוהב את ה- API נקי יותר אבל אני בהחלט נוח להשתמש Grunt אם הפרויקט קורא לזה. מה שאתה צריך לא הוא קרא כי מר- Know- הכל אמר כי ג 'ל הוא טוב יותר לקבל את זה. אמנם יש הבדלים, אין מנצח ברור שני הפרויקטים יכולים, ויהיה, להתקיים. נסה אותם ולהמציא את המוח שלך.
הערה: ייתכן שתרצה לשקול דעות ממשתמשים כמו Keith Cirkel (יועץ Javascript) שמייעץ לך להשתמש לא זה ולא זה. בשנת מעניין שלו למה אנחנו צריכים להפסיק להשתמש Grunt & Gulp המאמר, הוא מציע להשתמש npm.
לקריאה נוספת
ישנם מאמרים רבים אחרים על נושא זה. הייתי ממליץ בחום על כל אחד מהבאים לקריאה נוספת; זה לא כואב לקרוא מה יש לאחרים לומר!
- גרגר לעומת גביע - מעבר למספרים (תודה מיוחדת על דוגמאות ברורות)
- ללא שם: Gulp, Grunt, מה שלא יהיה
- בחר: Grunt, Gulp או npm?
- מהירות וגמילה
- למה אנחנו צריכים להפסיק להשתמש Grunt & Gulp
- לבנות מלחמות (השתמש בחצים כדי לנווט)
- אין צורך גראנט, לקחת לגימה של אוויר צח