اذهب إلى المحتوى
  • 0

ما الفرق بين module.export و export في webpack ؟

عبدالله غازي

السؤال

Recommended Posts

  • 1

الاستعلام export وحده في جافاسكربت يستعمل لتصدير روابط للوظائف والدوال أو الكائنات من ملفات تدعى بالوحدات النمطية modules. فجافاسكربت الحديثة لم تعد تضطرك الى كتابة كامل الشيفراتت البرمجية من دوال وكائنات في ملف واحد، بل أصبح يمكنك إنشاء ملفات خاصة بكل دالة وبكل كائن وتصديرها لإستعمالها في ملفات أو سياقات أخرى. 

هناك نوعان من التصديرات عن طريق export:

  • التصديرات المسماة
    export function functionName(){...}

     

  • التصديرات الافتراضية 
    export default expression;

     

أما بخصوص module.export فهي طريقة تخص NodeJs للتصدير، ومثلما واضح أنها تقوم بالوصول الى التابع export للكائن module.

الكائن module في NodeJS هو عبارة عن كائن JavaScript عادي يمثل الوحدة النمطية الحالية (التي يتم كتابة الشيفرة فيها). و module هنا هو بشكل بسيط تابع لهذا الكائن يقوم بنفس وظيفة التصدير بمميزات أكثر من حيث أن كل ما ستقوم بتعيينه لـ module.exports سيتم عرضه كوحدة نمطية مستقلة.

بشكل بسيط يختلفان من حيث: 

  • export تخص جافاسكربت في حين أن module.exports تخص NodeJs.
  • يمكن لـ export ان تقوم بتصدير العديد من الدوال والمتغيرات على عكس module.exports التي تقوم بتصدير أي ما يسند اليها كوحدة نمطية واحدة. وبمعنى آخر لا يمكن أن يحوي ملف جافاسكربت واحد العديد من module.exports في NodeJs في حين أنه يمكن ان يحوي ملف جافاسكربت واحد على العديد من تصديرات export في جافاسكربت.

من ناحية الاستعمال:

  • تستعمل module.exports لتصدير كائنات ملفات الاعداد وملفات الخدمات مثل ملفات اعداد ويب باك webpack.config.js و axios.config.js و غيرها. أين يجب أن تحوي خدمة أو كائنا أو وظيفة واحدة مستقلة. تعتبر هنا module.exports طريقة جيدة وشائعة لتصديرها. 
  • تستعمل export لتصدير متغيرات، دوال من ملفات. مثل تصدير دالة للترجمة ودالة لتغيير اللغة وكائن الترجمات من ملف لغات language.js مثلا. 

يتوفر في NodeJs مكافئ لـ export أيضا، هو exports. 

رابط هذا التعليق
شارك على الشبكات الإجتماعية

  • 0

الفرق بين module.exports و exports 

 module.exports: 

نستعملها عندما نريد تصدير صف او تابع من module إلى أخرى.

مثلا الشيفرة التالية

module.exports = function doSomething() {
	return 10;
};

قمنا بتعريف تابع وجعلناه يعيد قيمة, وهذه القيمة هي التي سوف نحصل عليها عندما نستورد هذا التابع في ملف آخر 

يتم استيراد التابع بالطريقة التالية باستعمال require

const doSomething = require('./calculator.js');
//./calculator.js هو مسار الملف الذي يحوي التابع الذي نريد استيراده
  

أما exports:  

نستعملها عندما نريد أن نصدر متغيرات او غرض أو قيمة معينة 

لاحظ المثال التالي 

exports.anObject = {
  x: 123,
};

ونقوم بإستيراده باستخدام require أيضاً

const anObject = require('./calculator.js');

 

رابط هذا التعليق
شارك على الشبكات الإجتماعية

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...