الفرق بين المراجعتين ل"Next.js/next.config.js"

من موسوعة حسوب
اذهب إلى التنقل اذهب إلى البحث
(أنشأ صفحة فارغة)
 
سطر 1: سطر 1:
  
 +
= التعامل مع ملف التهيئة next.config.js في Next.js =
 +
بإمكانك إنشاء الملف <code>next.config.js</code> أو <code>next.config.mjs</code> في جذر مشروعك وإلى جوار الملف <code>package.json</code>، إن كنت ترغب في تطبيق إعدادت متقدمة على تطبيق Next.js.
 +
 +
يُعد الملف <code>next.config.js</code>وحدة نمطية Node.js وليس ملف JSON، ويُستخدم من قبل خادم Next.js وخلال مراحل بناء التطبيق ولا يُضمَّن في تجميعة المتصفح.
 +
 +
إليك مثالًا عن ملف التهيئة <code>next.config.js</code>:<syntaxhighlight lang="javascript">
 +
/**
 +
* @type {import('next').NextConfig}
 +
*/
 +
const nextConfig = {
 +
  /* ضع الإعدادات هنا  */
 +
}
 +
 +
module.exports = nextConfig
 +
</syntaxhighlight>إن احتجت إلى [[Node.js/esm|وحدات ECMAScript]] بإمكانك استخدام الملف:<syntaxhighlight lang="javascript">
 +
/**
 +
* @type {import('next').NextConfig}
 +
*/
 +
const nextConfig = {
 +
  /* ضع الإعدادات هنا  */
 +
}
 +
 +
export default nextConfig
 +
</syntaxhighlight>بإمكانك استخدام دالة أيضًا:<syntaxhighlight lang="javascript">
 +
module.exports = (phase, { defaultConfig }) => {
 +
  /**
 +
  * @type {import('next').NextConfig}
 +
  */
 +
  const nextConfig = {
 +
    /* ضع الإعدادات هنا  */
 +
  }
 +
  return nextConfig
 +
}
 +
</syntaxhighlight>يمكن ابتداءً بالنسخة 12.1.0 استخدام دالة متزامنة:<syntaxhighlight lang="javascript">
 +
module.exports = async (phase, { defaultConfig }) => {
 +
  /**
 +
  * @type {import('next').NextConfig}
 +
  */
 +
  const nextConfig = {
 +
    /* ضع الإعدادات هنا */
 +
  }
 +
  return nextConfig
 +
}
 +
</syntaxhighlight>يُعد السياق <code>phase</code> هو السياق الحالي لتحميل الإعدادات وتواجد سياقات أخرى أيضًا. يمكن إدراج المراحل phases من الوحدة <code>next/constants</code>:<syntaxhighlight lang="javascript">
 +
const { PHASE_DEVELOPMENT_SERVER } = require('next/constants')
 +
 +
module.exports = (phase, { defaultConfig }) => {
 +
  if (phase === PHASE_DEVELOPMENT_SERVER) {
 +
    return {
 +
      /* ضع إعدادات مرحلة التطوير هنا */
 +
    }
 +
  }
 +
 +
  return {
 +
    /* ضع إعدادات كل المراحل هنا ما عدا مرحلة التطوير */
 +
  }
 +
}
 +
</syntaxhighlight>تُوضع الإعدادات المسموحة) في <code>next.config.js</code> مكان أسطر التعليقات في الشيفرات السابقة. مع ذلك، لا حاجة إلى أية إعدادات، وليس من الضرورة فهم عمل كل إعداد. كل ما عليك هو البحث عن الميزات التي تريد تفعيلها أو تعديلها في هذه الصفحة وستريك ما العمل.<blockquote>تفادى استخدام ميزات JavaScript الجديدة في اصدار  Node.js الذي تستهدفه. فلن يُحلل الملف <code>next.config.js</code> من قبل Webpack أو Babel أو TypeScript.</blockquote>
 +
 +
== المصادر ==
 +
 +
* الصفحات [https://nextjs.org/docs/api-reference/next.config.js/introduction Next.config.js] من توثيق Next.js الرسمي.

مراجعة 05:19، 11 يوليو 2022

التعامل مع ملف التهيئة next.config.js في Next.js

بإمكانك إنشاء الملف next.config.js أو next.config.mjs في جذر مشروعك وإلى جوار الملف package.json، إن كنت ترغب في تطبيق إعدادت متقدمة على تطبيق Next.js.

يُعد الملف next.config.jsوحدة نمطية Node.js وليس ملف JSON، ويُستخدم من قبل خادم Next.js وخلال مراحل بناء التطبيق ولا يُضمَّن في تجميعة المتصفح.

إليك مثالًا عن ملف التهيئة next.config.js:

/**
 * @type {import('next').NextConfig}
 */
const nextConfig = {
  /* ضع الإعدادات هنا  */
}

module.exports = nextConfig

إن احتجت إلى وحدات ECMAScript بإمكانك استخدام الملف:

/**
 * @type {import('next').NextConfig}
 */
const nextConfig = {
  /* ضع الإعدادات هنا  */
}

export default nextConfig

بإمكانك استخدام دالة أيضًا:

module.exports = (phase, { defaultConfig }) => {
  /**
   * @type {import('next').NextConfig}
   */
  const nextConfig = {
    /* ضع الإعدادات هنا  */
  }
  return nextConfig
}

يمكن ابتداءً بالنسخة 12.1.0 استخدام دالة متزامنة:

module.exports = async (phase, { defaultConfig }) => {
  /**
   * @type {import('next').NextConfig}
   */
  const nextConfig = {
    /* ضع الإعدادات هنا */
  }
  return nextConfig
}

يُعد السياق phase هو السياق الحالي لتحميل الإعدادات وتواجد سياقات أخرى أيضًا. يمكن إدراج المراحل phases من الوحدة next/constants:

const { PHASE_DEVELOPMENT_SERVER } = require('next/constants')

module.exports = (phase, { defaultConfig }) => {
  if (phase === PHASE_DEVELOPMENT_SERVER) {
    return {
      /* ضع إعدادات مرحلة التطوير هنا */
    }
  }

  return {
    /* ضع إعدادات كل المراحل هنا ما عدا مرحلة التطوير */
  }
}

تُوضع الإعدادات المسموحة) في next.config.js مكان أسطر التعليقات في الشيفرات السابقة. مع ذلك، لا حاجة إلى أية إعدادات، وليس من الضرورة فهم عمل كل إعداد. كل ما عليك هو البحث عن الميزات التي تريد تفعيلها أو تعديلها في هذه الصفحة وستريك ما العمل.

تفادى استخدام ميزات JavaScript الجديدة في اصدار Node.js الذي تستهدفه. فلن يُحلل الملف next.config.js من قبل Webpack أو Babel أو TypeScript.

المصادر