Turbopack
Turbopack (بيتا) هو حزمة تجميع تدريجية مُحسنة لجافاسكريبت وتايبسكريبت، مكتوبة بلغة Rust ومدمجة في Next.js.
الاستخدام
يمكن استخدام Turbopack في Next.js ضمن كل من دليل pages
وapp
لتسريع التطوير المحلي. لتفعيل Turbopack، استخدم العلامة --turbo
عند تشغيل خادم التطوير في Next.js.
{
"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
- يحل Turbopack محل Webpack، مما يعني أن تكوين Webpack غير مدعوم.
- لتكوين Turbopack، راجع الوثائق.
- مجموعة فرعية من حَمّالات Webpack مدعومة في Turbopack.
- 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.