هذا هو مستودع عميلنا. أنه يحتوي على تطبيق React.js لـ Kitsu.
تحقق من أدوات مستودعات مستندات المحمول والخادم و API.
ربما تعني حقيقة أنك تقرأ هذا أنك مهتم بالمساهمة في تطبيق Kitsu على الويب. إذا كان الأمر كذلك ، مرحبًا بك! من السهل جدًا البدء ، ونحن هنا لمساعدتك على طول الطريق. إذا كانت لديك أي أسئلة ، فلا تتردد في طرحها على خلافنا في قناة #DEV!
قبل تقديم طلب سحب ، يرجى قراءة StyleGuide والتأكد من أنك تحتفظ بقاعدة الكود نظيفة ومتسقة للمطورين في المستقبل.
ستحتاج إلى إصدار Node.js حديث إلى حد ما. ربما يكون LTS النشط هو الخيار الأفضل إذا لم تكن متأكدًا. ستستخدم عمليات النشر لدينا LTS النشطة ، لكننا نحاول التأكد من أن كل شيء يعمل بسلاسة على الإصدار الحالي أيضًا.
بعد أن يكون لديك عقدة ، قم بتشغيل ما يلي:
npm install (تثبيت التبعيات)npm run dev (المنفذ الافتراضي 3000) الآن قم بزيارة http://localhost:3000 ويجب أن ترى تطبيق kitsu!
افتراضيًا ، في وضع التطوير ، سيتصل هذا بـ
staging.kitsu.io(بيئة ما قبل الإنتاج) لـ API ، مما يعني أنه سيتم القضاء على أي شيء تفعله أسبوعيًا. يمكنك تغيير هذا للاتصال بالإنتاج إذا لزم الأمر عن طريق تعيينVITE_API_HOST=https://kitsu.io/في ملف.env. هذا ليس ضروريًا بشكل عام ، ولكن هناك بعض الأشياء التي لا تعمل بشكل كامل في التدريج.في المستقبل ، نخطط لدمج هذا في بيئة Kitsu-Tools Dev بشكل أفضل.
على الرغم من أن هيكل المشروع الأساسي يجب أن يكون مألوفًا لمعظم المطورين الذين استخدموا React و Vite في الماضي ، فإن Kitsu هو تطبيق كبير ولديه بنية أكثر مما قد اعتادت عليه.
يقوم Vite بتجميع التطبيق بدءًا من "نقطة الدخول". في حالتنا ، لدينا أربعة ، عبر ثلاثة "أهداف بناء":
BUILD_TARGET=client - تطبيق الويب الرئيسي Kitsu (V4)index.html - نقطة الدخول الرئيسية لتطبيق الويب Kitsuoauth2-callback.html نقطة الدخول لمعالج رد الاتصال من موفر OAUTH2 (معظمهم فقط مندوبون إلى مكتبة Nanoauth).BUILD_TARGET=server إصدار من جانب الخادم من تطبيق Kitsu Web Appserver.js - نقطة الدخول الرئيسية لتطبيق Kitsu WebBUILD_TARGET=library - مكتبة المكونات من تطبيق الويب Kitsu (V4) لفضح تطبيق V3 ember أثناء الترحيل.src/entry-ember.tsx الصادرات التي يمكن الوصول إليها من تطبيق ember src/assets/ - الأصول الثابتة مثل الرموز والرسوم التوضيحية والرسوم المتحركة التي تستوردها التطبيق. لا يتم نسخها فقط إلى دليل الإخراج ، ويجب استيرادها ويمكن معالجتها أثناء التجميع باستخدام الإضافات المختلفة.src/components/ - مكونات شائعة وقابلة لإعادة الاستخدامsrc/pages/ - المكونات التي تصنع صفحة كاملةsrc/layouts/ - المكونات التي توفر بنية صفحة قابلة لإعادة الاستخدامsrc/contexts/ - رد الفعل لمشاركة الحالة بين المكوناتsrc/initializers/ - رمز ضروري يتم تشغيله أثناء تمهيد التطبيق (تجنب هذه إذا كان ذلك ممكنًا ، تفضل السنانير في مكون التطبيق)src/constants/config.ts - يعرض التكوين للتطبيق في وقت التشغيلsrc/graphql/ - GRAPHQL ، مثل أنواع المخططات التي تم إنشاؤها ، والمعدلات ، وتبادل URQL.src/hooks/ - خطاطيف رد فعل مخصصة للتطبيقsrc/locales/ -بيانات لكل لغة ندعمها (الترجمات ، واللغات التاريخية ، وما إلى ذلك)src/errors/ - جميع الفئات الفرعية خطأ لديناsrc/styles/ -أنماط على نطاق التطبيق (غير محددة لمكون) ، ومعظمها في شكل متغيرات تستخدم في أنماط المكونات. npm run codegen إذا قمت بتغيير ملف .gql أو إضافة مفتاح ترجمة جديد ، فستحتاج إلى تشغيل npm run codegen لجعلهم يعملون بشكل صحيح. ستقوم CodeGen GraphQL بإنشاء ملفات TypeScript لكل استعلام وسيقوم Codegen Intl باستخراج جميع مفاتيح الترجمة من مكوناتك.
npm run storybookنحن نستخدم كتاب القصص لتوثيق المكونات. نطلب منك أن توثق أي مكونات جديدة تضيفها.
npm run test:unit # Runs unit tests (vitest)
npm run test:unit:watch # Opens vitest in watch mode
npm run test:e2e # Runs e2e tests (cypress)لدينا جناح اختباران:
.test.ts(x)cypress/معظم الوقت ، نوصي باختبار الكود الخاص بك مع Vitest. إنها تجربة أجمل بكثير ، وهي تعمل بشكل أسرع. ومع ذلك ، تحتاج في بعض الأحيان إلى اختبار سير عمل كامل من نهاية إلى طرف ، وهو ما يوجد من أجله.
نستخدم CrowdIn للتعامل مع الترجمات ، وتوجه إلى CrowdIn.com/project/kitsu-web لاقتراح تغييرات أو إضافة ترجمات جديدة.
ترجمات تستخدم تنسيق بناء رسائل وحدة العناية المركزة. قراءة وثائق بناء الجملة.
تتطلع إلى إنشاء مشكلة؟ افتح تقرير الأخطاء أو طلب ميزة على Kitsu.