یہ ٹول کیسے کام کرتا ہے
یہ تبصرے اور غیر ضروری خالی جگہ ہٹاتا ہے، اور اس کے سوا کچھ نہیں۔ یہ سورس پر چلتے ہوئے سٹرنگز، ٹیمپلیٹ لٹرلز، ریگولر ایکسپریشن لٹرلز اور تبصرے کی دونوں صورتوں کا حساب رکھتا ہے، اس لیے تبصرہ صرف وہیں ہٹتا ہے جہاں وہ واقعی تبصرہ ہو — سٹرنگ یا ریگولر ایکسپریشن کے اندر کی دوہری سلیش جوں کی توں رہتی ہے، اور یہی چلتے ہوئے کوڈ اور ٹوٹی ہوئی فائل کے درمیان فرق ہے۔
نئی سطریں جان بوجھ کر رکھی جاتی ہیں۔ JavaScript کچھ شرائط کے تحت سطری ٹوٹ پر سیمی کولن خود شامل کر دیتا ہے، اس لیے بغیر سیمی کولن لکھے ہوئے کوڈ کا مطلب بدل جاتا ہے اگر اس کی نئی سطریں سمیٹ دی جائیں۔ انہیں رکھنے کی قیمت تھوڑا سا حجم ہے اور فائدہ ناکامی کی ایک پوری قسم کا خاتمہ۔ علامتِ استعجاب سے شروع ہونے والے تبصرے محفوظ رہتے ہیں، کیونکہ لائسنس کی سرخی کے لیے یہی روایت ہے۔
حد، صاف الفاظ میں
- کسی چیز کا نام نہیں بدلا جاتا: اصل minifier متغیروں کے نام چھوٹے کرتا ہے، اور پروڈکشن بنڈل میں زیادہ تر بچت وہیں سے آتی ہے۔ اسے محفوظ طریقے سے کرنے کے لیے پورا پارسر اور دائرہ کار کا ماڈل درکار ہے، اور اس میں معمولی سی غلطی ایسی فائل دیتی ہے جو یہاں نہیں بلکہ پروڈکشن میں ناکام ہوتی ہے۔
- نہ مردہ کوڈ ہٹتا ہے نہ کوئی اظہار دوبارہ لکھا جاتا ہے: نتیجہ آپ کا اپنا کوڈ ہے، تبصروں اور وقفہ بندی کے بغیر۔ مفید کمی کی توقع رکھیں، وہ تناسب نہیں جو کوئی بلڈ ٹول حاصل کرتا ہے۔
- اصل بلڈ کے لیے اصل بنڈلر استعمال کریں: esbuild، terser یا SWC نام بدلنے اور غیر استعمال شدہ کوڈ نکالنے کا کام کرتے ہیں۔ یہ کسی ٹکڑے، اندرونی اسکرپٹ یا ایسی فائل کے لیے ہے جس کا کوئی بلڈ مرحلہ نہ ہو۔
- ابہام پر جان بوجھ کر محتاط: سلیش ریگولر ایکسپریشن شروع کرتی ہے یا تقسیم کرتی ہے، یہ بغیر پارس کیے طے نہیں ہو سکتا۔ یہاں کا اندازہ ان صورتوں کے لیے درست ہے جو عملاً پیش آتی ہیں، اور جہاں یقین نہ ہو وہاں کوڈ جوں کا توں چھوڑ دیا جاتا ہے۔