حزم Starter Kits في Laravel تعتمد Vite+ وتوحّد فحص الكود عبر vp check
أصبحت جميع Laravel Starter Kits تُبنى الآن باستخدام Vite+، بما يشمل نسخ React وVue وSvelte وLivewire. التغيير يستبدل إعدادات ESLint وPrettier المنفصلة بأمر `vp check` الذي يجمع التنسيق وفحص lint والتحقق من الأنواع، ويصل تلقائياً إلى التطبيقات الجديدة المُنشأة من هذه الحزم.
أبرز النقاط
- جميع Laravel Starter Kits لنسخ React وVue وSvelte وLivewire أصبحت تعتمد Vite+ بالإصدار 0.3.0.
- أمر `vp check` يجمع تنسيق Oxfmt وفحص Oxlint والتحقق من الأنواع في خطوة واحدة.
- أزيلت ESLint وPrettier وملفات إعداداتهما المنفصلة من حزم Inertia الجديدة.
- انتقلت قواعد lint وformat إلى `vite.config.ts`، مع اعتبار التحذيرات أخطاء وتفعيل type-aware linting.
- التطبيقات الجديدة تستفيد تلقائياً، بينما يمكن للمشاريع القائمة استخدام أمر migration من VoidZero مع احتمال الحاجة إلى متابعة يدوية للمشاريع المعقدة.
انتقلت جميع Laravel Starter Kits إلى Vite+، لتوحيد أدوات الواجهة الأمامية في حزم React وVue وSvelte وLivewire. نُفّذ التغيير عبر laravel/maestro#60 ثم جرى تعميمه على مستودعات الحزم في اليوم نفسه، مع تثبيت vite-plus على الإصدار 0.3.0.
عملياً، لن تتضمن إعدادات الواجهة في حزم Inertia الجديدة ESLint وPrettier كأداتين منفصلتين. بدلاً من ذلك، تعتمد الحزم على CLI موحّد باسم vp ضمن Vite+.
من أوامر متعددة إلى فحص موحّد
كانت حزم Inertia تستخدم أوامر مستقلة للـ lint والتنسيق والتحقق منهما. أصبحت هذه المهام الآن متمركزة في أمرين:
{
"scripts": {
"build": "vp build",
"build:ssr": "vp build && vp build --ssr",
"dev": "vp dev",
"check": "vp check",
"check:fix": "vp check --fix",
"types:check": "tsc --noEmit"
}
}
ينفذ vp check التنسيق عبر Oxfmt، وفحص lint عبر Oxlint، والتحقق من الأنواع ضمن تمريرة واحدة. كما تغيّر مسار composer ci:check ليشغّل npm run check بدلاً من تشغيل lint:check وformat:check كل على حدة.
Vite+ عبارة عن toolchain موحّد يضم Vite وRolldown وVitest وtsdown وOxlint وOxfmt وVite Task خلف واجهة vp، ويتولى كذلك إدارة runtime ومدير الحزم المرتبطين بها.
الإعدادات انتقلت إلى vite.config.ts
أزيلت ملفات مثل eslint.config.js و.prettierrc و.prettierignore من حزم Inertia، إلى جانب مجموعة من devDependencies المرتبطة بها. وفي المقابل، أصبحت قواعد lint وformat داخل vite.config.ts عبر مفاتيح lint وfmt.
يتضمن الإعداد الجديد التعامل مع التحذيرات باعتبارها أخطاء، وتفعيل type-aware linting. كما يحافظ على إعدادات تنسيق مثل عرض السطر والمسافات والاقتباسات المفردة، إضافة إلى فرز Tailwind CSS في الدوال المحددة مثل clsx وcn وcva.
تضمنت بعض الحزم تعديلات خاصة بها:
- انتقلت حزمة React إلى
@vitejs/plugin-reactv6، وتشغّل React Compiler عبر@rolldown/plugin-babel. - استبدلت حزمة Svelte الحزمة
lucide-svelteبـ@lucide/svelteالمدعومة. - كان التغيير في Livewire محدوداً، لعدم وجود TypeScript فيها لفحصه، وشمل أساساً أوامر
vpواستخدامlazyPlugins().
التطبيقات الجديدة التي تُنشأ عبر Starter Kits ستستخدم هذا الإعداد تلقائياً. أما المشاريع القائمة التي تعتمد Vite، فتوفّر VoidZero أمر migration للانتقال إلى Vite+، مع تنبيه بأن المشاريع المعقدة قد تحتاج إلى مراجعة وتعديلات يدوية بعد الترحيل.
لماذا يهم؟
لمن يبدأ تطبيق Laravel جديداً، يقل عدد أدوات وإعدادات الواجهة التي يحتاج إلى صيانتها، وتصبح مهام البناء والفحص أكثر اتساقاً بين حزم React وVue وSvelte. أما الفرق التي تريد ترحيل مشاريع قائمة، فالتغيير يوفر مساراً رسمياً نحو Vite+ لكنه ليس بالضرورة انتقالاً بلا مراجعة في المشاريع المعقدة.