استخدام حِزَم npm
يمكنك تثبيت واستخدام أي حزمة npm في تطبيقك. يتم تجميع كلٍ من الدوال المنطقية والمكوّنات الأمامية باستخدام esbuild، والذي يُضمّن جميع التبعيات ضمن المخرجات — لا حاجة إلىnode_modules وقت التشغيل.
تثبيت حزمة
src/logic-functions/fetch-data.ts
src/front-components/chart.tsx
كيف يعمل التجميع
تستخدم خطوة البناء أداة esbuild لإنتاج ملف واحد مستقل لكل دالة منطقية ولكل مكوّن أمامي. تُضمَّن جميع الحزم المستوردة داخل الحزمة. الدوال المنطقية تعمل في بيئة Node.js. الوحدات المدمجة في Node (fs وpath وcrypto وhttp وغيرها) متاحة ولا تحتاج إلى تثبيت.
المكوّنات الأمامية تعمل ضمن Web Worker. وحدات Node المدمجة غير متاحة — المتاح فقط واجهات برمجة المتصفّح وحِزَم npm التي تعمل في بيئة المتصفّح.
كلتا البيئتين تحتويان على twenty-client-sdk/core وtwenty-client-sdk/metadata كوحدات متاحة مُسبقًا — لا تُضمَّن هذه ضمن الحزم بل تُحلّ وقت التشغيل بواسطة الخادم.
إعداد
يتضمّن التطبيق المُولَّد بالقالب بالفعل Vitest. إذا أعددته يدويًا، فثبّت التبعيات:vitest.config.ts في جذر تطبيقك:
vitest.config.ts
src/__tests__/setup-test.ts
واجهات SDK البرمجية
يُصدِّر المسار الفرعيtwenty-sdk/cli دوالًا يمكنك استدعاؤها مباشرةً من شيفرة الاختبار:
| دالة | الوصف |
|---|---|
appBuild | بناء التطبيق واختياريًا حزم ملف tarball |
appDeploy | رفع ملف tarball إلى الخادم |
appInstall | تثبيت التطبيق على مساحة العمل النشطة |
appUninstall | إلغاء تثبيت التطبيق من مساحة العمل النشطة |
success: boolean وعلى إمّا data أو error.
كتابة اختبار تكامل
إليك مثالًا كاملًا يبني التطبيق وينشره ويثبّته، ثم يتحقّق من ظهوره في مساحة العمل:src/__tests__/app-install.integration-test.ts
تشغيل الاختبارات
تأكّد من تشغيل خادم Twenty المحلي لديك، ثم:التحقق من الأنواع
يمكنك أيضًا تشغيل التحقق من الأنواع على تطبيقك دون تشغيل الاختبارات:tsc --noEmit ويبلغ عن أي أخطاء في الأنواع.
التكامل المستمر (CI) باستخدام GitHub Actions
تولّد أداة إنشاء الهيكل سير عمل GitHub Actions جاهزًا للاستخدام في.github/workflows/ci.yml. يشغّل اختبارات التكامل لديك تلقائيًا عند كل دفع إلى main وعلى طلبات السحب.
سير العمل:
- يجلب الشيفرة الخاصة بك
- يشغّل خادم Twenty مؤقتًا باستخدام الإجراء
twentyhq/twenty/.github/actions/spawn-twenty-docker-image - يثبّت التبعيات باستخدام
yarn install --immutable - يشغّل
yarn testمع حقنTWENTY_API_URLوTWENTY_API_KEYمن مخرجات الإجراء
.github/workflows/ci.yml
spawn-twenty-docker-image خادم Twenty عابرًا مباشرة في المشغّل ويُخرِج تفاصيل الاتصال. يتم توفير السر GITHUB_TOKEN تلقائيًا من قِبل GitHub.
لتثبيت إصدار محدّد من Twenty بدلًا من latest، غيّر متغير البيئة TWENTY_VERSION في أعلى سير العمل.