تكرار السؤال: …
الإجابة المختصرة
تسمح بتعريف نقاط الدخول الرسمية للحزمة والتحكم في إمكانية الوصول إلى الملفات الداخلية وتحديد مخرجات مختلفة لـ CJS وESM.
الشرح
تمنع exports استيراد الملفات الداخلية الخاصة بالحزمة، وتوفر شروطاً لتوجيه الاستيراد حسب بيئة التشغيل أو نظام الوحدات المستخدم (Conditional Exports).
مثال بالكود
{ "exports": { ".": { "import": "./dist/index.mjs", "require": "./dist/index.cjs" } } }أخطاء شائعة
- نسيان توفير حقل types أو وضعه في مكان خاطئ في exports.
أسئلة متابعة
- كيف تتعامل Node.js مع مشكلة التبعيات الدائرية (Circular Dependencies) بين CJS و ESM؟
- ما الفرق بين العلامات ^ و ~ والإصدار الصريح في ملف package.json؟