عن المشروع
أداة react-app-rewired هي أداة مطورين تتيح لك تجاوز وتخصيص إعدادات Webpack لمشاريع Create React App (CRA) دون استخدام أمر 'eject'. تحافظ الأداة على مزايا الإعداد صفر التكوين الخاص بـ CRA بينما تمنح المطورين المرونة لإضافة الإضافات والمحمّلات والتخصيصات الأخرى التي يحتاجونها.
تعمل الأداة عن طريق اعتراض أوامر react-scripts القياسية (start, build, test) وتطبيق تجاوزات محددة من قبل المستخدم من ملف config-overrides.js. يمكن لهذا الملف تصدير دالة واحدة لتخصيص Webpack أو كائن يحتوي على دوال منفصلة لتكوينات Webpack وJest وdevServer والمسارات.
تشمل القدرات الرئيسية: تخصيص قواعد وإضافات Webpack لعمليات البناء الخاصة بالتطوير والإنتاج؛ تعديل تكوين اختبار Jest بما في ذلك أنماط مسارات الاختبار ومحددات Babel؛ تجاوز تكوين خادم تطوير Webpack لإعدادات شهادات HTTPS والوكيل (Proxy)؛ وضبط المسارات التي يتم تمريرها إلى Webpack وJest.
يدعم المشروع كلًا من إصدارات CRA 1.x (Webpack 3) وCRA 2.x (Webpack 4)، حيث أزال الإصدار 2.0 وظائف مساعدة لإعادة الربط (rewire) لصالح التكوين المباشر. كما يدعم حزم react-scripts المخصصة عبر العلم --scripts-version، مما يتيح الاستخدام مع متغيرات TypeScript مثل react-scripts-ts.
يوجد نظام بيئي كبير من إضافات إعادة الربط (rewire plugins) للحالات الشائعة بما في ذلك إضافات Babel (emotion, lodash, styled-components)، وإضافات Webpack (favicons, imagemin, bundle analyzer)، ومحمّلات (TypeScript, SCSS, SVG, YAML). يمكن أيضًا تحديد ملف config-overrides كمجلد للتنظيم المعياري أو تمريره عبر سطر الأوامر للمرونة.
تحذيرات مهمة: استخدام react-app-rewired يكفل ضمانات CRA الرسمية، مما يعني أنك تتحمل مسؤولية التكوين ولا تتلقى دعمًا رسميًا. يوصي المؤلف باستخدام Next.js أو Razzle للمشاريع التي تحتاج إلى تخصيص واسع لإعدادات Webpack جاهزًا للاستخدام. تتوفر بدائل أخرى مثل customize-cra وRescripts وcraco للتوافق مع CRA 2.0+.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.