Turbopack

Turbopack (بيتا) هو حزمة تجميع تدريجية مُحسنة لجافاسكريبت وتايبسكريبت، مكتوبة بلغة Rust ومدمجة في Next.js.

الاستخدام

يمكن استخدام Turbopack في Next.js ضمن كل من دليل pages وapp لتسريع التطوير المحلي. لتفعيل Turbopack، استخدم العلامة --turbo عند تشغيل خادم التطوير في Next.js.

package.json
{
  "scripts": {
    "dev": "next dev --turbo",
    "build": "next build",
    "start": "next start",
    "lint": "next lint"
  }
}

الميزات المدعومة

لا يحتاج Turbopack في Next.js إلى أي تكوين لمعظم المستخدمين ويمكن توسيعه لحالات استخدام أكثر تقدمًا. لمعرفة المزيد عن الميزات المدعومة حاليًا في Turbopack، راجع مرجع API.

الميزات غير المدعومة

يدعم Turbopack حاليًا فقط next dev ولا يدعم next build. نحن نعمل حاليًا على دعم عمليات البناء مع اقترابنا من الاستقرار.

هذه الميزات غير مدعومة حاليًا:

  • تكوين webpack() في next.config.js
  • Babel (.babelrc)
    • يستخدم Turbopack مترجم SWC لجميع عمليات التحويل والتحسينات. هذا يعني أن Babel غير مضمن افتراضيًا.
    • إذا كان لديك ملف .babelrc، فقد لا تحتاج إليه بعد الآن لأن Next.js يتضمن إضافات Babel الشائعة كتحويلات SWC يمكن تفعيلها. يمكنك قراءة المزيد عن هذا في وثائق المترجم.
    • إذا كنت لا تزال بحاجة إلى استخدام Babel بعد التحقق من أن حالة استخدامك غير مغطاة، يمكنك الاستفادة من دعم Turbopack لحَمّالات Webpack المخصصة لتضمين babel-loader.
  • إنشاء تخطيط جذر تلقائيًا في App Router.
    • هذا السلوك غير مدعوم حاليًا لأنه يغير ملفات الإدخال، بدلاً من ذلك، سيظهر خطأ يطلب منك إضافة تخطيط جذر يدويًا في الموقع المطلوب.
  • @next/font (دعم الخطوط القديم).
    • @next/font لم يعد مدعومًا ويُفضل استخدام next/font. next/font مدعوم بالكامل مع Turbopack.
  • new Worker('file', import.meta.url).
    • نخطط لتنفيذ هذه الميزة في المستقبل.
  • تحويلات Relay
    • نخطط لتنفيذ هذه الميزة في المستقبل.
  • experimental.nextScriptWorkers
    • نخطط لتنفيذ هذه الميزة في المستقبل.
  • AMP.
    • لا نخطط حاليًا لدعم AMP في Next.js مع Turbopack.
  • Yarn PnP
    • لا نخطط حاليًا لدعم Yarn PnP في Next.js مع Turbopack.
  • experimental.urlImports
    • لا نخطط حاليًا لدعم experimental.urlImports في Next.js مع Turbopack.

إنشاء ملفات التتبع

تسمح ملفات التتبع لفريق Next.js بالتحقيق في مقاييس الأداء وتحسينها. لإنشاء ملف تتبع، أضف NEXT_TURBOPACK_TRACING=1 إلى أمر next dev --turbo، وسيتم إنشاء ملف .next/trace.log.

عند الإبلاغ عن مشكلات تتعلق بأداء Turbopack واستخدام الذاكرة، يرجى تضمين ملف التتبع في إصدار GitHub.