مشكلة في عمل export و import في Typescript حمل الكود وحل لي المشكلة

  • hsen

لماذا لما اعمل export and import في

typescript

يعطيني الخطاء التالي :

Uncaught ReferenceError: exports is not defined

لي اسبوع اطبق حلول بدون جدى

ياليت تحمل الكود و تشوف اين المشكلة

يرجى الدخول لحسابك أو تسجيل حساب لتستطيع إضافة تعليق
حساب جديد دخول

التعليقات

إذا الـ commonjs غير مثبتة عندك قم بحذف هذا السطر في ملف tsconfig.js

"module": "commonjs",

لا يوجد شيء يسمى "CommonJS غير مثبتة عندك"، وحذف هذا السطر لن يفعل شيئًا اللهم غير إيقاف المجمع لأنك تطلبه أن يجمّع وحدة بدون نظام وحدات معيّن!

يوسف سيد أضف ردا

حسنًا هو هنا يتحدث عن مجرد تثبيت حزمة Module Loader وليس "تثبيت CommonJS عندك" الأخير مجرد نظام وحدات وليس برنامج أو برمجية ما ثبت! (مع أنه على فكررة CommonJS هو النظام الافتراضي في NodeJS يعني لا تحتاج أيّ تبعيات لتشغيل وحدة CommonJS.

عمومًا صاحب الموضوع يشغّل الوحدة بالمتصفح وهنا يحتاج إلى شيء كـWebpack أو بناء وحدة ES تعمل على المتصفح مباشرةً.

عمومًا إذ كنت تنوي ترجمة الإجابة من Stackoverflow يفضل تضمين الرابط مباشرة أفضل من الترجمة بتصرف مما قد يخلط الأمر عند السائل.

إضافة:

حذف سطر تحديد نظام الوحدة مع وجود export وimport في المصدر يعني ببساطة أن المجمّع لن يترجم! لذا هو ليس حلًا هنا!

يوسف سيد أضف ردا

المشكلة ليس لها علاقة بـTypeScript هنا، المشكلة أنك على ما يبدو تريد تشغيل وحدة CommonJS بالمتصفح؛ ولا يمكنك تشغيل وحدة Commonjs بالمتصفح مباشر، الموضوع يحتاج، ممممم. الموضوع معقد بعض الشيء، هنا الحل الأفضل في الوقت الحالي هو استخدام webpack لإنتاج ملف حزمة وحيدة (Bundle) تعمل مباشرةً في المتصفح أو بناء وحدة UMD (تصدر للنطاق العام وبالمرة تدعم CommonJS وUMD ..

ولو أني أود أن أنصحك بتجربة بناء وحدة ES module، لكن الموضوع معقد الآن قليلا ولن يعجبك.

ياليت تنصحني بي ES module

تعبت لي اسبوع ابحث عن حل

horizon أضف ردا

انت تشغله في بيئة المتصفح و بيئة المتصفح لا تدعم modules حتى الآن.

الكود يعني فقط في بيئة Nodejs

جرب

node app.js

كيف اجرب node app js??