Vuestrata
قالب لتطبيقات Vue 3 تُفرض قواعده بفحوص آلية.
قالب تبدأ منه تطبيقات Vue 3. تفحص قواعدَه ست قواعد تدقيق مخصّصة وأربعة اختبارات معمارية، وتتولّى المولّدات كتابة ملفات كل وحدة أو صفحة أو سمة أو مكوّن جديد وتسجيلها. ويأتي بـ 12 سمة فوق مجموعة مكوّنات واحدة.

المشكلة
إنشاء مشروع Vue جديد أمر سهل. الصعب أن يبقى المشروع متّسقًا وهو يكبر: التوجيه، وملكية الحالة، وحدود الوحدات، والاتصال بالواجهات البرمجية، والمصادقة، والسمات، والصلاحيات، وبيانات المحاكاة، والاختبارات، وإعدادات النشر.
وأهمّ القواعد هي التي تُخالَف دون أن يظهر خطأ. وحدة نسيتَ تسجيلها في setup.ts: لا خطأ، لكن الميزة لا تعمل. سمة عُرّفت في ثلاثة ملفات من أربعة: لا خطأ، لكن الألوان تظهر في غير مواضعها. بيانات محاكاة بقيت في نسخة الإنتاج: لا خطأ، لكنها تصل إلى المستخدمين.
قواعد تفرضها الأدوات
لذلك لا يكتفي Vuestrata بتوثيق قواعده، بل يفحص أهمّها آليًا:
- ست قواعد تدقيق مخصّصة: الحالة المعرَّفة على مستوى الوحدة، واستعمال ألوان اللوحة مباشرة، والمعالِجات المكتوبة داخل القوالب، وتطابق مفاتيح الترجمة بين الإنجليزية والفرنسية والعربية، وتطابق أسماء الأيقونات، والملفات الأربعة التي يجب أن ترد فيها كل سمة.
- أربعة اختبارات معمارية: مطابقة سجلّ الوحدات لما في المشروع، والتزام كل وحدة بعقدها، وتسجيل صفحات التوثيق، وحصر ما يخص العرض التجريبي في العرض التجريبي.
- فحص حزمة الإنتاج: يفشل البناء إذا تسرّب إليها شيء من خادم المحاكاة، أو إذا تجاوز حجمها الحدّ المقرَّر.
- فحص التطابق: إصدارات الأدوات وترويسات الأمان تُولَّد كلٌّ منها من تعريف واحد، ويفشل التكامل المستمر إذا خالفته أي نسخة.
المولّدات
لكل إضافة شائعة مولّد يكتب ملفاتها ويسجّلها في المواضع التي يسهل نسيانها. والخيار --dry-run يعرض ما سيُكتب دون أن يكتب شيئًا.
vpr gen:module payments # CRUD domain: schema, queries, mocks, pages, i18n, registered
vpr gen:page payments refunds # a page, wired into the module's routes
vpr gen:theme midnight # theme, imported and registered in all four places
vpr gen:component Tag # Ui* wrapper (+ --field for a forms composable)
اثنتا عشرة سمة لمجموعة مكوّنات واحدة
تعيد كل سمة مدمجة تعريف تدرّجات الألوان واستدارة الزوايا والظلال في الوضعين الفاتح والداكن، فوق المكوّنات نفسها، وثمانٍ منها تغيّر الخط أيضًا. أما الأيقونات ومقياس المسافات والحركة فثابتة، وهذا ما يجعل التبديل بين السمات ممكنًا.
تحديث نسختك من القالب
Vuestrata قالب تنسخه إلى مشروعك، وليس حزمة تثبّتها. وأداة سطر الأوامر المرفقة تجلب إصلاحات القالب الأصلي حتى بعد أن تعدّل نسختك:
vp exec vuestrata diff # what would change; writes nothing
vp exec vuestrata upgrade
الملفات التي لم تعدّلها تُستبدل، والتي عدّلتها تبقى كما هي، وتوضع النسخة الجديدة بجانبها للمقارنة.
محوّلات المصادقة
تمرّ المصادقة عبر محوّلات قابلة للاستبدال: محوّل محاكاة للعروض التجريبية، و JWT، و OAuth مع PKCE. يصرّح كل محوّل بطريقة نقله وبما يدعمه، فتُخفي الواجهة عناصر التحكم التي لا يدعمها المحوّل المستعمل.
const { login, register, logout, isLoading, error } = useAuth()
نظرة على المشروع
اثنتا عشرة سمة لمجموعة مكوّنات واحدة
تصفّح لقطات للصفحة الرئيسية نفسها بكل سمة من السمات المدمجة.

لقطات



