ניפוי באגים בקוד המקורי במקום בפריסה של מפות מקור

מגין קירני
מגין קירני
פול באקאס
פול באקאוס
סופיה אמליאנובה
סופיה אמליאנובה

חשוב שהקוד בצד הלקוח יהיה קריא וניתן לניפוי באגים, גם אחרי שילוב, הקטנה או הידור של הקוד. משתמשים במפות מקור כדי למפות את קוד המקור לקוד ההידור בחלונית מקורות.

תחילת העבודה עם מעבדים מראש

מפות מקור ממעבדים מראש גורמות לכלי הפיתוח לטעון את הקבצים המקוריים שלך בנוסף לקבצים המוקטנים.

Chrome יפעיל בפועל את הקוד המוקטן, אבל בחלונית מקורות יוצג הקוד שחיברת. אפשר להגדיר נקודות עצירה (breakpoint) ולבצע שלבים באמצעות הקוד בקובצי מקור, וכל השגיאות, היומנים ונקודות העצירה ימופו באופן אוטומטי.

הפעולה הזאת יוצרת מראה של ניפוי באגים בקוד כפי שכתבתם, בניגוד לקוד שמוצג על ידי שרת הפיתוח ומבוצע על ידי הדפדפן.

כדי להשתמש במפות מקור בחלונית מקורות:

  • צריך להשתמש רק במעבדים מראש שיכולים ליצור מפות מקור.
  • מוודאים ששרת האינטרנט יכול להציג מפות מקור.

שימוש במעבד מידע מראש נתמך

מעבדי מידע מראש נפוצים המשמשים בשילוב עם מפות מקור כוללים, בין היתר:

רשימה מורחבת זמינה במאמר מפות מקור: שפות, כלים ומידע נוסף.

הפעלת מפות מקור בהגדרות

בקטע הגדרות. הגדרות > העדפות > מקורות, מקפידים לסמן את האפשרות תיבת סימון. הפעלת מפות מקור של JavaScript.

בדיקה אם מפות המקור נטענו בהצלחה

אפשר לעיין במקורות מידע למפתחים: הצגה וטעינה של מפות מקור באופן ידני.

ניפוי באגים באמצעות מפות מקור

כשמפות המקור מוכנות ומופעלות, אפשר לבצע את הפעולות הבאות:

  1. פותחים את מקורות האתר בחלונית מקורות.
  2. כדי להתמקד רק בקוד שאתם כותבים, צריך לקבץ קבצים שנוצרו ונפרסו בעץ הקבצים. לאחר מכן מרחיבים את הקטע נכתב. נוצר ופותחים את קובץ המקור המקורי בעורך.

    הקובץ המקורי נפתח בקטע 'מחבר'.

  3. מגדירים נקודת עצירה (breakpoint) כרגיל. לדוגמה, logpoint. לאחר מכן מריצים את הקוד.

    נקודת רישום (logpoint) מוגדרת בקובץ שנוצר.

  4. שימו לב שהעורך מוסיף קישור לקובץ שנפרס בשורת הסטטוס למטה. באופן דומה, הכלל הזה חל על קובצי CSS שנפרסו.

    קישור לקובצי ה-CSS שנפרסו בשורת הסטטוס.

  5. פותחים את חלונית ההזזה של מסוף. בדוגמה הזו, ליד ההודעה של נקודת הרישום (logpoint), יוצג ב-Play Console קישור לקובץ המקורי ולא לקובץ שנפרס.

    הודעת ה-Play Console עם קישור לקובץ המקורי.

  6. משנים את הסוג של נקודת העצירה לרגיל ומריצים שוב את הקוד. הפעם הביצוע מושהה.

    הפעולה מושהית בנקודת עצירה רגילה.

    שימו לב שבחלונית Call Stack מוצג שם הקובץ המקורי ולא השם של הקובץ שנפרס.

  7. בשורת הסטטוס שבתחתית העורך, לוחצים על הקישור לקובץ שנפרס. בחלונית מקורות תועברו לקובץ המתאים.

הקובץ שנפרס עם התגובה sourceMappingURL.

כשפותחים קובץ שנפרס, מקבלים הודעה מכלי הפיתוח אם הם מצאו את התגובה //# sourceMappingURL ואת הקובץ המקורי המשויך.

שימו לב שהעורך הדפיס באופן אוטומטי את הקובץ שנפרס. במציאות, הוא מכיל את כל הקוד בשורה אחת, מלבד התגובה //# sourceMappingURL.

מתן שם ל-eval() שיחות באמצעות #sourceURL

בעזרת #sourceURL אפשר לפשט את ניפוי הבאגים כשמטפלים בקריאות ל-eval(). כלי העזר הזה נראה מאוד דומה לנכס //# sourceMappingURL. למידע נוסף, עיינו במפרט של מפת מקור V3.

התגובה //# sourceURL=/path/to/source.file מנחה את הדפדפן לחפש את קובץ המקור במהלך השימוש ב-eval(). כך ניתן לתת שם להערכות ולסקריפטים ולסגנונות המוטבעים.

תוכלו לבדוק אותה בדף ההדגמה הזה:

  1. פותחים את כלי הפיתוח ועוברים לחלונית Sources.
  2. בדף, מזינים שם קובץ שרירותי בשדה הקלט תן שם לקוד:.
  3. לוחצים על הלחצן הידור. תופיע התראה עם הסכום המוערך ממקור CoffeeScript.
  4. בעץ הקבצים בחלונית דף, פותחים קובץ חדש עם שם הקובץ המותאם אישית שהזנתם. הוא מכיל את קוד ה-JavaScript ההידור הכולל את התגובה // #sourceURL עם השם המקורי של קובץ המקור.
  5. כדי לפתוח את קובץ המקור, לוחצים על הקישור בשורת הסטטוס בעורך.

התגובה של sourceURL והקישור לקובץ המקור בשורת הסטטוס.