מתכנתים אוהבים גרסאות עגולות, אבל בדרך כלל שוכחים לבדוק מה באמת מקבלים בתמורה לכאב הראש. הגרסה השלישית של 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 כבר ייצור אותו עם הגרסה החדשה כברירת מחדל ואין סיבה לחזור אחורה. לעומת זאת, באפליקציות שרצות בייצור, מומלץ להמתין עד שהפונקציות המרוחקות ייצאו מסטטוס ניסיוני.
| רכיב | SvelteKit 2 | SvelteKit 3 | משמעות למפתח |
|---|---|---|---|
| קובץ הגדרות | svelte.config.js | איחוד בתוך vite.config.ts | ריכוז כל ההגדרות במקום אחד ומחיקת קובץ נפרד |
| כינוי תיקיית הספריות | $lib | #lib | מעבר לתקן subpath imports רשמי של Node.js |
| Remote Functions | זמין תחת דגל experimental | עדיין אינו מוכן ולא נכלל כיציב | היכולת לא הבשילה לייצור וממשיכה להמתין לעדכונים עתידיים |
| כלי שדרוג | sv migrate sveltekit-2 | sv migrate sveltekit-3 | אוטומציה ייעודית למעבר בין הגרסאות עם רשימת משימות ידנית |
בינתיים, הכפתור עדיין אפור.
מקורות
- SvelteKit 3https://svelte.dev/blog/sveltekit-3-is-here
- Modules: Packages | Node.js v26.10.0 Documentationhttps://nodejs.org/api/packages.html
- Migrating to SvelteKit v3https://svelte.dev/docs/kit/migrating-to-sveltekit-3
- `sv migrate`https://svelte.dev/docs/cli/sv-migrate
- `sv create`https://svelte.dev/docs/cli/sv-create
- subpath importshttps://nodejs.org/api/packages.html#subpath-imports
- environment variableshttps://svelte.dev/docs/kit/environment-variables
- service workershttps://svelte.dev/docs/kit/service-workers
- Remote functionshttps://svelte.dev/docs/kit/remote-functions
- Async Sveltehttps://svelte.dev/docs/svelte/await-expressions
- SvelteKithttps://weba.co.il/tools/sveltekit/
- Vitehttps://weba.co.il/tools/vite/
הידיעה נכתבה מהמקורות שלמעלה בתאריך הפרסום, וכל טענה בה נבדקה מולם. מצאתם טעות? כתבו.