Node.js 24 Native TypeScript
خطوة البناء أصبحت شبه منتهية.
يدعم Node.js 24 الآن TypeScript بشكل أصلي. يمكنك تشغيل ملفات .ts في بيئة الإنتاج (production) دون الحاجة لخطوة بناء. هذا يزيل العوائق بين الكود الخاص بك وعملية التنفيذ.
كيف يعمل الأمر: يقوم وقت التشغيل (runtime) بتحليل بناء جملة TypeScript الخاص بك، ثم يقوم بإزالة تعليقات الأنواع (type annotations) عند وقت التحميل، وبعد ذلك يقوم بتنفيذ كود JavaScript الناتج.
حقائق رئيسية حول هذا التغيير:
- لا يقوم بفحص الأنواع (type checking).
- لا يقوم بإنشاء ملفات .d.ts.
- يعامل TypeScript كأنه JavaScript مع تعليقات توضيحية.
- يتخلص وقت التشغيل من التعليقات قبل التنفيذ.
هذا يبسط عملية النشر (deployment). لم تعد بحاجة لإدارة مجلدات مخرجات tsc أو إعدادات خرائط المصدر (source map) المعقدة من أجل النشر. سيصبح الكود المصدري الخاص بك هو المصدر الوحيد للحقيقة (single source of truth).
انتبه لهذه القيود:
- لا يوجد فحص للأنواع أثناء وقت التشغيل. لا تزال بحاجة لتشغيل
tsc --noEmitفي خط أنابيب التكامل المستمر (CI pipeline) لاكتشاف الأخطاء. - لا يوجد دعم لخرائط المسارات (path mappings) في ملف tsconfig.json.
- لا يوجد دعم للمزخرفات (decorators) أو المحولات المخصصة (custom transformers).
- تكلفة طفيفة في الأداء أثناء عمليات التشغيل البارد (cold starts) بسبب عملية إزالة الأنواع.
إذا كنت تستخدم أسماء مستعارة للمسارات (path aliases) مثل @/utils فستظل بحاجة إلى أداة تجميع (bundler) أو esbuild.
كيفية استخدامه:
يمكنك تشغيل الخادم الخاص بك مباشرة باستخدام Node:
node src/server.ts
للحصول على تصحيح أخطاء (debugging) أفضل، استخدم علم خرائط المصدر (source maps flag):
node --enable-source-maps src/server.ts
هذا خيار رائع للخدمات المصغرة (microservices) ذات رسوم التبعية (dependency graphs) البسيطة؛ حيث ستكتسب سرعة في النشر. ومع ذلك، إذا كنت بحاجة إلى تحسين مكثف (optimization) أو تصغير الكود (minification)، فالتزم بخط أنابيب بناء تقليدي.
الهدف هو اختيار الأداة التي تناسب احتياجاتك المحددة.