שאלות נפוצות


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

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

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

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

האם מהדר החסימות יכול להרכיב JavaScript שמוטמע ב-HTML?
לא. מהדר סגירה פועל רק בקבצים שמכילים רק JavaScript.
האם אפשר להשתמש ב'מהדר סגירה' יחד עם מיני-ברים אחרים של JavaScript?

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

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

איך אפשר לנפות באגים ב-JavaScript שהכלי ליוצר מייצר?
אם בקוד ההידור שלך מוצגות שגיאות או אם מוצגת בו התנהגות בלתי צפויה, אפשר להשתמש במפות מקור כדי לנפות באגים בבעיה. מפת מקור מספקת מיפוי בין הקוד שהורכב לבין קוד המקור המקורי, כדי שהכלים למפתחים של הדפדפן יוכלו להציג לך את קוד המקור המקורי במקום את הקוד המהודר. כדי להכין את מדריך החסימות, צריך ליצור את הדגל --create_source_map בשורת הפקודה. לדוגמה:
$ java -jar compiler.jar --js example.js --create_source_map ./example-map --js_output_file example-compiled.js
לאחר מכן, אם משתמשים בדפדפן שתומך במפות מקור (כמו Chrome או Firefox), אפשר להגדיר נקודות עצירה בדיוק כמו בקוד שלא עבר קיבוץ, ובכלים למפתחים של הדפדפן תוצג שורת הקוד המתאימה במקור המקורי. מידע נוסף על הכלים למפתחים ב-Chrome, כולל מידע על מפות מקור, זמין במאמר ניפוי באגים ב-JavaScript.
האם המהדר עושה את הפשרה בין מהירות הביצוע של האפליקציה שלי לגודל הקוד של ההורדה?
כן. כל מהדר מייעל עושה פשרות. אופטימיזציות מסוימות של הגודל כוללות תקורות מהירות נמוכות. עם זאת, המפתחים של מהדר הסגירה היזהרו לא להוסיף זמן ריצה משמעותי נוסף. חלק מהאופטימיזציות של המהדר אפילו מפחיתות את זמן הריצה (כדאי לעיין בשאלה הבאה).
האם המהדר מבצע אופטימיזציה למהירות?
ברוב המקרים, קוד קטן יותר הוא קוד מהיר יותר, מאחר שבדרך כלל זמן ההורדה הוא הגורם המהיר ביותר לאפליקציות אינטרנט. גם אופטימיזציות שמפחיתות את היתירות מאפשרות להאיץ את זמן הריצה של הקוד.
האם יש הגבלות על גודל הקבצים שניתן להדר?
לשירות הידור באינטרנט יש גודל קובץ מקסימלי, אבל לאפליקציית המהדר העצמאי אין.
האם מהדר החסימות זמין לכל הפלטפורמות?
המהדר נכתב ב-Java, כך שהוא יכול לפעול בכל מקום ש-Java פועל.
האם המהדר יכול לעבד JavaScript חוקי?
בעיקר. חלק מהמבנים של JavaScript, כולל eval() ו-with(), עשויים לבטל הנחות שמבוססות על הטרנספורמציות של המהדר.
מה צריך לדעת על פיתוח אתרים כדי להשתמש ב'מהדר סגירה'?
מהדר החסימות הוא כלי לפיתוח JavaScript, ולכן עליכם לדעת איך לתכנת ב-JavaScript כדי להשתמש במהדר. אבל כל מי שמשתמש ב-JavaScript יכול להפיק תועלת מהשימוש במהדר סגירה.
איך מדריך החסימות עובד עם ספריית חסימות?
מהדר סגירה מספק בדיקות מיוחדות ואופטימיזציות עבור קוד שמשתמש בספריית החסימות. בנוסף, שירות מהדרים לחסימות יכול לכלול באופן אוטומטי קבצים של ספריית החסימות. בקטע מציאת הדרך שלך מסביב לסגירה מוסבר מה התחביר של הצהרת חלקי החסימות הנדרשים. לקבלת מידע נוסף על השימוש בספריית החסימות עם ה-API, אפשר לעיין בהפניית API. כדי להשתמש בספריית החסימות עם אפליקציית מהדקי החסימות, צריך להוריד את ספריית החסימות. כברירת מחדל, תמיכה בספריית החסימות מופעלת באפליקציית המהדר.
הקוד שלי מפסיק לעבוד או שהמהדר מייצר שגיאות כשמשלבים אותו עם ADVANCED_OPTIMIZATIONS. למה?
בדרך כלל, במצב מתקדם נדרש שינויים והכנה מראש. הידור מתקדם והרחבת תוספים מסביר איך לוודא שהקוד שלך עובד עם ADVANCED_OPTIMIZATIONS.
למה יש פידים אקראיים בסקריפטים שעברו הידור?
מהדר הסגירות יוסיף בכוונה מעברי שורה בכל 500 תווים בערך. חומות אש ושרתי Proxy לפעמים מושחתים או מתעלמים מקובצי JavaScript גדולים עם קווים ארוכים מאוד. הוספת שורה תגרום למעבר של כל 500 תווים כדי למנוע את הבעיה הזו. הסרת מעברי השורות לא משפיעה על הסמנטיקה של הסקריפט. ההשפעה על גודל הקוד קטנה, והמהדר מבצע אופטימיזציה של מיקום מעבר השורה כך שהעונש על גודל הקוד יהיה קטן יותר במקרים של gzip.
יש לי הודעות בנושא זכויות יוצרים או טקסט ברישיון קוד פתוח שחייבים להופיע בקוד המקור שלי. איך למנוע מהכלי לבצע את סגירת הסגירה להסיר את הטקסט הזה?
מהדר סגירה תומך בתג JSDoc @license. יש להוסיף את התג @license לכל תגובת JSDoc כדי לשמר את התגובה בפלט של המהדר. מידע נוסף זמין במאמר הוספת הערות JavaScript עבור מהדר סגירה.