𝗩𝗶𝘁𝗲 𝗸𝗼 𝗮𝘀𝗮𝗮𝗻 𝗯𝗮𝗻𝗮𝗻𝗮
پرانے ٹولز جیسے Webpack یا Create React App پہلے آپ کے پورے پروجیکٹ کو بنڈل (bundle) کر کے کام کرتے ہیں۔ یہ ٹول ہر فائل کو پڑھتا ہے اور انہیں ایک بہت بڑی JavaScript فائل میں تبدیل کر دیتا ہے۔ یہ چھوٹے پروجیکٹس کے لیے تو ٹھیک ہے، لیکن بڑے پروجیکٹس میں یہ ناکام ہو جاتا ہے۔ بڑے پروجیکٹس میں اس عمل میں کئی سیکنڈ لگ جاتے ہیں۔ جب بھی آپ کوئی فائل سیو کرتے ہیں، تو ٹول کو اس کام کا ایک بڑا حصہ دوبارہ کرنا پڑتا ہے۔
Vite مختلف طریقے سے کام کرتا ہے۔ جدید براؤزرز ES modules کو قدرتی طور پر (natively) سپورٹ کرتے ہیں۔ اس کا مطلب ہے کہ براؤزر خود ہی imports اور exports کو سنبھال سکتا ہے۔ Vite ڈویلپمنٹ کے دوران آپ کے کوڈ کو بنڈل نہیں کرتا۔ یہ ہر فائل کو ایک الگ ماڈیول کے طور پر صرف اس وقت فراہم کرتا ہے جب براؤزر اس کی درخواست کرتا ہے۔
ایک بفے (buffet) ریسٹورنٹ کے بارے میں سوچیں۔ شیف دروازے کھولنے سے پہلے ہر ایک ڈش تیار کرتا ہے۔ اگر آپ کو ایک چھوٹا سا بدلاؤ چاہیے، تو شیف کو پورا بفے دوبارہ تیار کرنا پڑتا ہے۔ Webpack اسی طرح کام کرتا ہے۔ پروجیکٹ جتنا بڑا ہوگا، آپ کو اتنا ہی زیادہ انتظار کرنا پڑے گا۔
Vite ایک à la carte ریسٹورنٹ کی طرح ہے۔ دروازے فوراً کھل جاتے ہیں۔ آپ ایک ڈش آرڈر کرتے ہیں۔ شیف صرف وہی ڈش تیار کرتا ہے۔ اگر آپ کو بعد میں میٹھا چاہیے، تو شیف صرف میٹھا تیار کرتا ہے۔ آپ کو پورا مینو تیار ہونے کا انتظار نہیں کرنا پڑتا۔
Vite دو مختلف ضروریات کے لیے دو مختلف حکمت عملیوں کا استعمال کرتا ہے:
Development (vite dev) • حکمت عملی: بنڈلنگ کے بغیر native ESM modules فراہم کرتا ہے۔ • شروع ہونے کی رفتار: فوری۔ یہ پروجیکٹ کے سائز پر منحصر نہیں ہے۔ • کیوں: آپ کے کمپیوٹر پر مقامی HTTP requests تیز ہوتی ہیں۔
Production (vite build) • حکمت عملی: Rolldown کا استعمال کرتے ہوئے سب کچھ بنڈل کرتا ہے۔ • شروع ہونے کی رفتار: وقت پروجیکٹ کے سائز کے ساتھ بڑھتا جاتا ہے۔ • کیوں: سینکڑوں الگ الگ فائلیں صارفین کے لیے بہت زیادہ HTTP requests کا باعث بنتی ہیں۔ بنڈلنگ اس مسئلے کو حل کرتی ہے۔
Vite آپ کو کوڈنگ کے دوران رفتار اور لانچ کے وقت کارکردگی فراہم کرتا ہے۔
ماخذ: https://dev.to/yuripeixinho/descomplicando-o-vite-1p62