Node.js 24 TypeScript بومی
مرحلهی build تقریباً منسوخ شده است.
Node.js 24 اکنون از TypeScript به صورت بومی (native) پشتیبانی میکند. شما میتوانید فایلهای .ts را در محیط production بدون نیاز به مرحلهی build اجرا کنید. این کار اصطکاک بین کد و نحوهی اجرای آن را از بین میبرد.
نحوهی عملکرد: محیط اجرا (runtime) نحو (syntax) تایپاسکریپت شما را تجزیه (parse) میکند. در زمان بارگذاری، اعلانهای نوع (type annotations) را حذف کرده و سپس جاوااسکریپت حاصل را اجرا میکند.
نکات کلیدی درباره این تغییر:
- بررسی نوع (type checking) انجام نمیدهد.
- فایلهای .d.ts تولید نمیکند.
- با TypeScript مانند یک جاوااسکریپتِ دارای اعلان (annotated JavaScript) برخورد میکند.
- محیط اجرا، اعلانها را پیش از اجرا حذف میکند.
این موضوع استقرار (deployment) شما را سادهتر میکند. دیگر نیازی به مدیریت دایرکتوریهای خروجی tsc یا پیکربندیهای پیچیدهی source map برای استقرار ندارید. کد منبع شما به تنها مرجع حقیقت (single source of truth) تبدیل میشود.
مراقب این محدودیتها باشید:
- عدم بررسی نوع در زمان اجرا. همچنان باید برای شناسایی خطاها، دستور
tsc --noEmitرا در خط لوله (pipeline) CI خود اجرا کنید. - عدم پشتیبانی از path mappings در tsconfig.json.
- عدم پشتیبانی از decoratorها یا transformerهای سفارشی.
- هزینهی عملکردی جزئی در زمان شروعهای سرد (cold starts) به دلیل حذف نوعها (type stripping).
اگر از path aliasهایی مانند @/utils استفاده میکنید، همچنان به یک bundler یا esbuild نیاز دارید.
نحوهی استفاده:
میتوانید سرور خود را مستقیماً با Node اجرا کنید:
node src/server.ts
برای عیبیابی (debugging) بهتر، از پرچم (flag) source maps استفاده کنید:
node --enable-source-maps src/server.ts
این یک انتخاب عالی برای میکروسرویسهایی با گرافهای وابستگی ساده است. شما در استقرار سرعت بیشتری کسب میکنید. با این حال، اگر به بهینهسازی سنگین یا minification نیاز دارید، از همان خط لوله build سنتی استفاده کنید.
هدف این است که ابزار را با نیازهای خاص خود مطابقت دهید.