منصوبے کے بارے میں

react-app-rewired ایک ڈیویلپر ٹول ہے جو آپ کو Create React App (CRA) پروجیکٹس کی ویب پیک کنفیگریشن کو 'eject' کمانڈ استعمال کیے بغیر اوور رائیڈ اور حسب ضرورت بنانے کی اجازت دیتا ہے۔ یہ CRA کی صفر کنفیگریشن سیٹ اپ کے فوائد کو برقرار رکھتا ہے جبکہ ڈیویلپرز کو پلگ انز، لوڈرز، اور دیگر حسب ضرورت تبدیلیاں شامل کرنے کی لچک دیتا ہے۔ یہ ٹول معیاری react-scripts کمانڈز (start، build، test) کو روک کر اور config-overrides.js فائل سے صارف کی وضاحت کردہ تبدیلیاں لاگو کر کے کام کرتا ہے۔ یہ فائل یا تو ویب پیک حسب ضرورت کے لیے ایک فنکشن یا الگ الگ فنکشنز کا آبجیکٹ برآمد کر سکتی ہے جو ویب پیک، Jest، devServer، اور paths کنفیگریشنز کے لیے ہوں۔ اہم صلاحیتوں میں شامل ہیں: ڈیویلپمنٹ اور پروڈکشن بلڈز کے لیے ویب پیک رولز اور پلگ انز کو حسب ضرورت بنانا؛ Jest ٹیسٹ کنفیگریشن میں ترمیم کرنا جیسے ٹیسٹ پاتھ پیٹرن اور Babel پری سیٹس؛ HTTPS سرٹیفکیٹس اور پراکسی سیٹنگز کے لیے Webpack Dev Server کنفیگریشن کو اوور رائیڈ کرنا؛ اور ویب پیک اور Jest کو دیے گئے پروجیکٹ پاتھز کو ایڈجسٹ کرنا۔ یہ پروجیکٹ CRA 1.x (Webpack 3) اور CRA 2.x (Webpack 4) دونوں ورژنز کو سپورٹ کرتا ہے، جس میں ورژن 2.0 نے براہ راست کنفیگریشن کے حق میں rewire مددگار فنکشنز کو ہٹا دیا ہے۔ یہ --scripts-version فلیگ کے ذریعے حسب ضرورت react-scripts پیکجز کو بھی سپورٹ کرتا ہے، جس سے react-scripts-ts جیسے TypeScript مختلف شکلوں کے ساتھ استعمال ممکن ہوتا ہے۔ عام استعمال کے لیے rewire پلگ انز کی ایک بڑی کمیونٹی ایکو سسٹم موجود ہے جس میں Babel پلگ انز (emotion، lodash، styled-components)، ویب پیک پلگ انز (favicons، imagemin، bundle analyzer)، اور لوڈرز (TypeScript، SCSS، SVG، YAML) شامل ہیں۔ config-overrides فائل کو ماڈیولر تنظیم کے لیے ڈائریکٹری کے طور پر بھی مخصوص کیا جا سکتا ہے یا لچک کے لیے کمانڈ لائن کے ذریعے بھیجا جا سکتا ہے۔ اہم انتباہ: react-app-rewired استعمال کرنے سے CRA کی سرکاری ضمانتیں ختم ہو جاتی ہیں، یعنی آپ کنفیگریشن کے مالک بن جاتے ہیں اور کوئی سرکاری سپورٹ نہیں ملتی۔ مصنف ان پروجیکٹس کے لیے Next.js یا Razzle تجویز کرتا ہے جنہیں باکس سے باہر وسیع ویب پیک کنفیگریشن کی ضرورت ہو۔ CRA 2.0+ مطابقت کے لیے customize-cra، Rescripts، اور craco جیسے متبادل بھی دستیاب ہیں۔