JavaScript منیفائر
JavaScript پیسٹ کریں اور Terser سے اسے چھوٹا کریں: ڈیڈ کوڈ ہٹایا جاتا ہے، نام مختصر ہوتے ہیں اور خالی جگہیں غائب۔ سنٹیکس ایررز بالکل درست لائن اور کالم بتاتے ہیں۔
آپ کے براؤزر میں چلتا ہےسائن اپ کی ضرورت نہیںکچھ اپ لوڈ نہیں ہوتا
JavaScript منیفائر استعمال کرنے کا طریقہ
- اپنا JavaScript پیسٹ کریں یا
.jsفائل کھولیں۔ - آپشنز منتخب کریں: نام مختصر کریں لوکل ویری ایبلز کو چھوٹا کرتا ہے، کمپریس کوڈ کو چھوٹے مساوی کوڈ میں دوبارہ لکھتا ہے، ES ماڈیول ٹاپ لیول
import/exportفعال کرتا ہے۔ - وہ ECMAScript ٹارگٹ منتخب کریں جو آپ کے صارفین کے براؤزرز سپورٹ کرتے ہیں۔ ES2020 تمام جدید براؤزرز کے لیے محفوظ ہے۔
- آؤٹ پٹ کے نیچے سائز، بچت اور gzip اندازہ چیک کریں۔
- منیفائیڈ کوڈ کاپی کریں یا
output.min.jsکے طور پر ڈاؤن لوڈ کریں۔
JavaScript منیفائر کیا کرتا ہے؟
منیفکیشن JavaScript کا رویہ بدلے بغیر اسے چھوٹا کرتی ہے۔ یہ ٹول Terser استعمال کرتا ہے، جو webpack، Vite اور Rollup کے پیچھے کام کرنے والا منیفائر ہے، اور تین قسم کی تبدیلیاں کرتا ہے:
- خالی جگہ اور کمنٹس ہٹانا: JavaScript انجن کو انڈینٹیشن، نئی لائنوں اور کمنٹس کی ضرورت نہیں۔
- Mangling: لوکل ویری ایبلز اور فنکشن پیرامیٹرز کے نام، جیسے
subtotal، ایک حرف بن جاتے ہیں۔ گلوبل نام اور آبجیکٹ پراپرٹیز نہیں چھیڑی جاتیں تاکہ آپ کی پبلک API چلتی رہے۔ - کمپریشن: مستقل ایکسپریشنز کا حساب پہلے ہی کر لیا جاتا ہے، ناقابلِ رسائی کوڈ ہٹا دیا جاتا ہے،
ifسٹیٹمنٹس ternary بن جاتے ہیں اور مختصر فنکشنز inline ہو جاتے ہیں۔
منیفائی بمقابلہ gzip: کیا دونوں چاہئیں؟
جی ہاں۔ Gzip اور Brotli ترسیل کے دوران دہرائے گئے بائٹ پیٹرنز کمپریس کرتے ہیں، جبکہ منیفکیشن وہ بائٹس ہٹاتی ہے جنہیں براؤزر کو ورنہ ڈاؤن لوڈ، پارس اور کمپائل کرنا پڑتا۔ ایک عام سکرپٹ منیفکیشن سے 40–60% اور پھر gzip سے مزید 60–70% چھوٹا ہوتا ہے۔ یہاں دکھایا گیا gzip سائز اس کا اچھا اندازہ ہے جو آپ کا سرور اصل میں بھیجے گا۔
لائسنس کمنٹس رکھنا
بہت سے اوپن سورس لائسنس (MIT، BSD، Apache) تقاضا کرتے ہیں کہ کاپی رائٹ نوٹس کوڈ کے ساتھ رہے۔ روایت کے مطابق جو کمنٹس /*! سے شروع ہوں یا جن میں @license یا @preserve ہو، وہ لائسنس کمنٹس رکھیں آن ہونے پر محفوظ رہتے ہیں۔
کب ہاتھ سے منیفائی نہ کریں
اگر آپ کا پروجیکٹ پہلے سے کوئی bundler استعمال کرتا ہے تو پروڈکشن بلڈز اسی کو منیفائی کرنے دیں اور ڈیبگنگ کے لیے source maps بنوائیں۔ آن لائن منیفائر ایک بار کے سکرپٹس، CMS یا tag manager کے لیے snippets، bookmarklets اور یہ جانچنے کے لیے بہترین ہے کہ کوڈ کا ٹکڑا کتنا چھوٹا ہو سکتا ہے۔
اکثر پوچھے جانے والے سوالات
کیا میرا کوڈ سرور پر اپ لوڈ ہوتا ہے؟
کیا منیفکیشن میرا کوڈ توڑ سکتی ہے؟
Function.prototype.toString() یا eval کے ذریعے لوکل ویری ایبل ناموں پر انحصار کرتا ہے وہ متاثر ہو سکتا ہے؛ ایسی صورت میں نام مختصر کریں بند کر دیں۔