WEBA

גרסה 3 של SvelteKit כאן אבל שווה לעצור לפני השדרוג

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

512 מילים23 עובדות אומתו

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

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

שיפוץ מנוע, לא מכונית חדשה

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

זה אותו פריימוורק עם קצת יותר ליטוש, קצת יותר בטיחות טיפוסים, וקצת פחות זבל.הכרזת השחרור הרשמית של SvelteKit

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

תקנים רשמיים במקום קיצורי דרך

הקובץ svelte.config.js נמחק לחלוטין. כל הגדרות הפריימוורק עברו לתוך vite.config.ts תחת התוסף של Vite, מה שמאחד את כל קונפיגורציית הבנייה במקום אחד.

בנוסף, הכינוי המוכר לנתיבי קבצים מקומיים, שסומן תמיד כ-$lib, הוחלף ב-#lib. המעבר הזה נשען על תקן subpath imports הרשמי שמוגדר דרך שדה imports בקובץ package.json של Node.js. מעכשיו סביבת ההרצה מזהה את הנתיבים האלה באופן טבעי, בלי צורך במנגנוני תרגום ייעודיים של הפריימוורק.

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

תכונת הדגל נשארה בחוץ

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

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

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

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

מתי לשדרג ואיך לעשות זאת

לצורך המעבר, הצוות מספק את כלי המיגרציה האוטומטי sv migrate. הרצת הפקודה npx sv migrate sveltekit-3 --tasks all --confirm סורקת את הקבצים, מעדכנת את רוב הגדרות התשתית ומייצרת רשימת משימות ידנית עבור שאר חלקי הקוד שאינם ניתנים להמרה אוטומטית.

לפי החברה, השינויים השוברים מפורטים במדריך ה-migration guide, אך לא הייתי ממהר לשדרג מערכות קיימות בסוף השבוע הקרוב, בטח לא כשערוצי העבודה המרכזיים עדיין בבטא. בהכרזה הוזכר כי כנס Svelte Summit יתקיים ב-19 וב-20 בנובמבר בליובליאנה לציון עשור ל-Svelte, כך שייתכן שעדכונים נוספים יגיעו לקראת האירוע.

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

השוואת השינויים המבניים המרכזיים בין גרסה 2 לגרסה 3
רכיבSvelteKit 2SvelteKit 3משמעות למפתח
קובץ הגדרותsvelte.config.jsאיחוד בתוך vite.config.tsריכוז כל ההגדרות במקום אחד ומחיקת קובץ נפרד
כינוי תיקיית הספריות$lib#libמעבר לתקן subpath imports רשמי של Node.js
Remote Functionsזמין תחת דגל experimentalעדיין אינו מוכן ולא נכלל כיציבהיכולת לא הבשילה לייצור וממשיכה להמתין לעדכונים עתידיים
כלי שדרוגsv migrate sveltekit-2sv migrate sveltekit-3אוטומציה ייעודית למעבר בין הגרסאות עם רשימת משימות ידנית

בינתיים, הכפתור עדיין אפור.

מה לעשות עכשיוהשאירו אפליקציות קיימות בגרסה 2 והמתינו עם השדרוג עד ש-Remote Functions יוכרזו כיציבות בייצור.

מקורות

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

מה שואלים על זה

האם הפרויקט הקיים שלי יפסיק לעבוד אם לא אשדרג כעת?

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

למה הוחלף הקיצור של lib מסימן דולר לסולמית?

השינוי מ-$lib ל-#lib מבוסס על מנגנון ה-subpath imports הסטנדרטי של Node.js המוגדר בשדה imports ב-package.json, במקום להסתמך על מנגנון כינויים ייעודי של הפריימוורק.

האם כלי המיגרציה sv migrate משדרג את כל הפרויקט באופן מלא וללא שגיאות?

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

מתי Remote Functions יהיו מוכנות לשימוש מלא בייצור?

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