Skip to main content
يبدو التطبيق الجديد الذي يتم إنشاؤه بواسطة npx create-twenty-app كما يلي:

الملفات الرئيسية

تنظيم الملفات متروك لك. المجلدات المذكورة أعلاه هي أعراف متَّبعة — يكتشف SDK الكيانات عبر تحليل AST على استدعاءات export default defineEntity(...) بغض النظر عن مكان وجود الملف.

التبعيات

ينبغي أن تكون حزمتا SDK الخاصتان بـ Twenty ضمن devDependencies، وليس ضمن dependencies:
تقوم أداة إنشاء الهيكل بتثبيت الحزمتين twenty-sdk و twenty-client-sdk على إصدارها الخاص — حافظ على تزامنهما عند الترقية.
  • توفّر twenty-sdk أداة twenty CLI وأدوات البناء/إنشاء الهياكل (scaffolding). يعمل فقط أثناء التطوير ووقت البناء، ولا يتم استيراده أبدًا في وقت تشغيل تطبيقك المنشور.
  • يتم استيراد twenty-client-sdk بواسطة كود تطبيقك (CoreApiClient، MetadataApiClient، RestApiClient)؛ لكن Twenty توفّره في وقت التشغيل — حيث تحصل عليه دوال المنطق من طبقة SDK مُولَّدة، وتحصل عليه مكوّنات الواجهة من وحدات يتم تقديمها من الخادم. يُستخدَم الإصدار المثبّت لديك فقط لفحص الأنواع (typechecking) ولبناء النشر (deploy-time build)، لذا لا يلزم أبدًا أن يتم تضمينه في حزمة النشر.
الاحتفاظ بأي من الحزمتين ضمن dependencies يؤدي إلى سحبها داخل حزمة وقت تشغيل التطبيق المثبّت، حيث تكون عبئًا زائدًا بلا فائدة. يُطلق twenty dev:build تحذيرًا عندما تكون أيٌّ منهما ما تزال مدرجة ضمن dependencies. أضِف تبعيات وقت التشغيل الخاصة بتطبيقك (المكتبات التي تستوردها دوال المنطق لديك فعلًا في وقت التشغيل) ضمن dependencies كالمعتاد.