𝗡𝗼𝗱𝗲.𝗷𝘀 𝟮𝟰 𝗡𝗮𝘁𝗶𝘃𝗲 𝗧𝘆𝗽𝗲𝗦𝗰𝗿𝗶𝗽𝘁
بلڈ مرحلہ (build step) تقریباً ختم ہو چکا ہے۔
Node.js 24 اب TypeScript کو ن적으로 (natively) سپورٹ کرتا ہے۔ آپ بلڈ مرحلے کے بغیر پروڈکشن میں .ts فائلیں چلا سکتے ہیں۔ یہ آپ کے کوڈ اور اس کے ایگزیکیوشن (execution) کے درمیان رکاوٹ کو ختم کرتا ہے۔
یہ کیسے کام کرتا ہے: رن ٹائم (runtime) آپ کے TypeScript سنٹیکس (syntax) کو پارس کرتا ہے۔ یہ لوڈ کے وقت ٹائپ اینوٹیشنز (type annotations) کو ہٹا دیتا ہے۔ پھر یہ نتیجے کے طور پر حاصل ہونے والے JavaScript کو ایگزیکیوٹ کرتا ہے۔
اس تبدیلی کے بارے میں اہم حقائق:
- یہ ٹائپ چیکنگ (type checking) نہیں کرتا۔
- یہ .d.ts فائلیں جنریٹ نہیں کرتا۔
- یہ TypeScript کو اینوٹیشن والے JavaScript کے طور پر لیتا ہے۔
- رن ٹائم ایگزیکیوشن سے پہلے اینوٹیشنز کو ختم کر دیتا ہے۔
یہ آپ کی ڈیپلائمنٹ (deployment) کو آسان بناتا ہے۔ اب آپ کو ڈیپلائمنٹ کے لیے tsc آؤٹ پٹ ڈائریکٹریز یا پیچیدہ سورس میپ کنفیگریشنز کو مینیج کرنے کی ضرورت نہیں ہے۔ آپ کا سورس کوڈ ہی آپ کا واحد مستند ذریعہ (single source of truth) بن جاتا ہے۔
ان حدود (limitations) کا خیال رکھیں:
- رن ٹائم پر ٹائپ چیکنگ نہیں ہوتی۔ غلطیوں کو پکڑنے کے لیے آپ کو اب بھی اپنے CI پائپ لائن میں
tsc --noEmitچلانے کی ضرورت ہوگی۔ tsconfig.jsonپاتھ میپنگ (path mappings) کے لیے کوئی سپورٹ نہیں ہے۔- ڈیکوریٹرز (decorators) یا کسٹم ٹرانسفارمرز (custom transformers) کے لیے کوئی سپورٹ نہیں ہے۔
- ٹائپ اسٹریپنگ (type stripping) کی وجہ سے کولڈ اسٹارٹس (cold starts) کے دوران کارکردگی پر معمولی اثر پڑ سکتا ہے۔
اگر آپ @/utils جیسے پاتھ ایلیئسز (path aliases) استعمال کرتے ہیں، تو آپ کو اب بھی ایک بنڈلر (bundler) یا esbuild کی ضرورت ہوگی۔
اسے کیسے استعمال کریں:
آپ اپنا سرور براہ راست Node کے ساتھ چلا سکتے ہیں:
node src/server.ts
بہتر ڈیبگنگ (debugging) کے لیے، source maps فلیگ استعمال کریں:
node --enable-source-maps src/server.ts
یہ سادہ ڈیپینڈنسی گراف (dependency graphs) والے مائیکرو سروسز کے لیے ایک بہترین انتخاب ہے۔ آپ کو ڈیپلائمنٹ میں تیزی ملے گی۔ تاہم، اگر آپ کو بھاری آپٹیمائزیشن (optimization) یا منیفیکیشن (minification) کی ضرورت ہے، تو روایتی بلڈ پائپ لائن ہی استعمال کریں۔
مقصد ٹول کو آپ کی مخصوص ضروریات کے مطابق ڈھالنا ہے۔