turbo (تجريبي)

تحذير: هذه الميزات تجريبية وستعمل فقط مع next --turbo.

محملات (loaders) webpack

حاليًا، يدعم Turbopack مجموعة فرعية من واجهة برمجة تطبيقات محملات webpack، مما يسمح لك باستخدام بعض محملات webpack لتحويل الأكواد في Turbopack.

لتكوين المحملات، أضف أسماء المحملات التي قمت بتثبيتها وأي خيارات في ملف next.config.js، مع ربط امتدادات الملفات بقائمة من المحملات:

next.config.js
module.exports = {
  experimental: {
    turbo: {
      rules: {
        // تنسيق الخيارات
        '*.md': [
          {
            loader: '@mdx-js/loader',
            options: {
              format: 'md',
            },
          },
        ],
        // تنسيق بدون خيارات
        '*.mdx': ['@mdx-js/loader'],
      },
    },
  },
}

بعد ذلك، مع التكوين أعلاه، يمكنك استخدام الأكواد المحولة من تطبيقك:

import MyDoc from './my-doc.mdx'

export default function Home() {
  return <MyDoc />
}

أسماء مستعارة للحل (Resolve Alias)

من خلال ملف next.config.js، يمكن تكوين Turbopack لتعديل حل الوحدات من خلال أسماء مستعارة، مشابه لتكوين resolve.alias في webpack.

لتكوين أسماء مستعارة للحل، قم بربط الأنماط المستوردة بوجهتها الجديدة في ملف next.config.js:

next.config.js
module.exports = {
  experimental: {
    turbo: {
      resolveAlias: {
        underscore: 'lodash',
        mocha: { browser: 'mocha/browser-entry.js' },
      },
    },
  },
}

هذا يجعل استيرادات حزمة underscore تشير إلى حزمة lodash. بمعنى آخر، import underscore from 'underscore' ستحمّل وحدة lodash بدلاً من underscore.

يدعم Turbopack أيضًا التسمية الشرطية من خلال هذا الحقل، مشابهة لـ الصادرات الشرطية في Node.js. حاليًا، يتم دعم شرط browser فقط. في المثال أعلاه، سيتم تحويل استيرادات وحدة mocha إلى mocha/browser-entry.js عندما يكون Turbopack موجّهًا لبيئات المتصفح.

لمزيد من المعلومات والإرشادات حول كيفية نقل تطبيقك إلى Turbopack من webpack، راجع توثيق Turbopack حول التوافق مع webpack.