ts-node-dev لـ TypeScript: دليل شامل مع أمثلة
مرحبًا بكم في PythonLib! في هذه المقالة، سنشرح بالتفصيل مكتبة ts-node-dev — الأداة التي لا غنى عنها لتطوير TypeScript الحديث. إذا كنت تكتب بلغة TypeScript وقد سئمت من إعادة ترجمة الكود يدويًا بعد كل تعديل، فهذه المقالة لك.
1. ما هي ts-node-dev ولماذا تحتاجها؟
ts-node-dev هي أداة مساعدة لـ TypeScript توفر إعادة التحميل السريع (hot reload) لتطبيقك. تقوم بإعادة تشغيل عملية Node.js تلقائيًا عند تغيير ملفات TypeScript المصدرية. هذا يسرّع عملية التطوير بشكل كبير، حيث لن تحتاج إلى إيقاف الخادم أو السكريبت يدويًا وإعادة تشغيله.
لماذا تحتاجها؟ أثناء التطوير، تقوم باستمرار بإجراء تغييرات على الكود. بدون إعادة تحميل تلقائي، ستحتاج في كل مرة إلى:
- إيقاف العملية الحالية (Ctrl+C)
- تشغيلها مرة أخرى (npm start أو ts-node)
- انتظار الترجمة والتشغيل
ts-node-dev تحل هذه المشكلة. فهي تراقب التغييرات في ملفات المشروع وتعيد تشغيل التطبيق فورًا. على عكس nodemon (الذي يعمل مع JavaScript)، فإن ts-node-dev تفهم TypeScript وتستخدم ts-node داخليًا للترجمة "أثناء التشغيل". هذا يجعلها الخيار الأمثل لتطوير الخوادم وأدوات CLI وأي تطبيقات Node.js بلغة TypeScript.
2. التثبيت
يتم تثبيت ts-node-dev عبر npm (Node Package Manager). يُنصح بتثبيتها كـ تبعية تطوير (dev-dependency)، لأنك تحتاجها فقط أثناء التطوير.
# التثبيت عالميًا (غير موصى به)
npm install -g ts-node-dev
# التثبيت كتبعية تطوير في المشروع (موصى به)
npm install --save-dev ts-node-dev
# أو عبر yarn
yarn add --dev ts-node-dev
# أو عبر pnpm
pnpm add -D ts-node-dev
بعد التثبيت، تحقق من أن كل شيء يعمل:
npx ts-node-dev --version
إذا رأيت رقم الإصدار (مثل 2.0.0)، فهذا يعني أن التثبيت تم بنجاح.
3. البداية السريعة — مثال عملي بسيط
لنقم بإنشاء تطبيق TypeScript بسيط وتشغيله باستخدام ts-node-dev.
الخطوة 1: تهيئة المشروع
mkdir my-ts-app
cd my-ts-app
npm init -y
npm install --save-dev typescript ts-node-dev @types/node
npx tsc --init
الخطوة 2: إنشاء ملف src/index.ts
// src/index.ts
const greet = (name: string): string => {
return `مرحبًا، ${name}!`;
};
console.log(greet('PythonLib'));
console.log('الخادم يعمل...');
// تصدير شيء كمثال
export { greet };
الخطوة 3: التشغيل باستخدام ts-node-dev
npx ts-node-dev --respawn src/index.ts
يجب أن ترى:
[INFO] 15:30:00 ts-node-dev ver. 2.0.0 (using ts-node ver. 10.9.1, typescript ver. 5.3.3)
مرحبًا، PythonLib!
الخادم يعمل...
الآن قم بتغيير نص التحية في ملف src/index.ts واحفظ الملف. ستلاحظ أن العملية أعادت تشغيل نفسها تلقائيًا وأظهرت النتيجة الجديدة.
4. الخيارات الأساسية (الطرق)
ts-node-dev هي أداة CLI وليست مكتبة بواجهة API. ومع ذلك، لديها العديد من الخيارات (الأعلام) التي يمكن اعتبارها "طرقًا" للتكوين. دعنا نستعرض 8 خيارات رئيسية.
4.1 --respawn
الصيغة: ts-node-dev --respawn [ملف]
الوظيفة: إعادة تشغيل العملية تلقائيًا عند تغيير أي ملف في المشروع. هذا هو الخيار الأساسي لإعادة التحميل السريع.
مثال عملي:
npx ts-node-dev --respawn src/index.ts