الانتقال إلى المحتوى الرئيسي

نظرة عامة

يبدو التطبيق الجديد الذي يتم إنشاؤه بواسطة twenty app init كما يلي:

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

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

التبعيات

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