ترقية مشروع Next.js إلى v16 مع codemods موجهة
متى تستخدمه: كنت تؤجل ترقية Next 16. تريد وكيلاً يشغّل codemods ويصحح هجرات API غير المتزامنة
المتطلبات الأساسية
- مشروع Next.js على v14+ — تحقق من package.json
- شجرة عمل git نظيفة —
git statusيظهر نظيفة — حتى تتمكن من الرجوع إذا لزم الأمر
الخطوات
-
شغّل أداة الترقيةشغّل upgrade_nextjs_16 على هذا المشروع. أرشدني خلال كل codemod قبل التطبيق✓ تم النسخ→ قائمة بالتغييرات المخطط لها مع diffs للمعاينة
-
أصلح مواقع استدعاء API غير المتزامنةبعد codemods، ابنِ المشروع. بالنسبة لأي أخطاء من
cookies()/headers()غير المتزامنة الآن، أصلح مواقع الاستدعاء لاستخدامawait✓ تم النسخ→ البناء ينجح -
فعّل مكونات الذاكرة المؤقتةشغّل enable_cache_components. أصلح أي أخطاء حدودية يبلغ عنها✓ تم النسخ→ مكونات الذاكرة المؤقتة مفعلة، التطبيق يعمل
النتيجة: مشروع Next 16 عامل مع مكونات الذاكرة المؤقتة، في جلسة واحدة مركزة بدلاً من أسبوع متناثر
المزالق
- لا يمكن لـ codemods إصلاح استخدام async مخصص النمط — شغّل البناء بعد كل خطوة codemod؛ أصلح يدويًا عندما يضع codemod علامات 'REVIEW' على التعليقات
- قد لا تكون المكتبات من الطرف الثالث جاهزة لـ Next 16 — تحقق من توافق الحزم قبل الترقية؛ ثبّت أي مكتبة مكسورة وأرسل مشكلة upstream