Nodemon لجافا سكريبت (Node.js): دليل شامل مع أمثلة

مدرب بايثون أونلاين للمبتدئين

تعلم Python بسهولة دون إرهاق نظري. حل مهام عملية مع التحقق التلقائي واكتب الكود مباشرة في المتصفح.

ابدأ الدورة

Nodemon لجافا سكريبت (Node.js): دليل شامل مع أمثلة

1. ما هو Nodemon ولماذا تحتاجه

Nodemon هي أداة مساعدة لتطوير تطبيقات Node.js، تقوم تلقائياً بإعادة تشغيل الخادم (أو أي تطبيق Node.js آخر) عند اكتشاف أي تغييرات في ملفات المشروع. تُعتبر أداة لا غنى عنها لمطوري الويب الذين يعملون مع Express وKoa وFastify وغيرها من الأطر. بدلاً من إيقاف وتشغيل الخادم يدوياً بعد كل تعديل في الكود، يقوم Nodemon بذلك نيابةً عنك، من خلال مراقبة نظام الملفات والتفاعل مع أحداث حفظ الملفات.

المهمة الأساسية لـ Nodemon هي تسريع دورة التطوير. فبدونها، يضيع المطور وقته في تكرار نفس الإجراءات: Ctrl+C، السهم للأعلى، Enter. مع Nodemon، تتم أتمتة هذه العملية بالكامل. فهو لا يعيد تشغيل العملية فحسب، بل يتعامل أيضاً بشكل صحيح مع إنهاء المثيل السابق، مما يحرر المنافذ والموارد. بالإضافة إلى ذلك، يمكن لـ Nodemon تجاهل ملفات ومجلدات معينة (مثل node_modules أو .git)، مما يقلل الحمل على المعالج ونظام التخزين.

من المهم أن تفهم أن Nodemon ليست مكتبة بالمعنى التقليدي (مثل Lodash أو Axios)، بل هي أداة واجهة سطر أوامر (CLI). ليست مصممة للاستيراد داخل الكود كوحدة (على الرغم من أن ذلك ممكن تقنياً عبر API). استخدامها الأساسي هو التشغيل من سطر الأوامر أو عبر السكربتات في ملف package.json. تدعم Nodemon جميع أنظمة التشغيل (Windows وmacOS وLinux) وتعمل مع أي إصدار من Node.js.

2. التثبيت

يتم تثبيت Nodemon عبر npm (مدير حزم Node.js). يُنصح بتثبيتها بشكل عام أو كتبعية تطويرية في مشروعك.

التثبيت العام (لجميع المشاريع):

npm install -g nodemon

التثبيت المحلي (لمشروع معين):

npm install --save-dev nodemon

بعد التثبيت المحلي، يمكنك تشغيل Nodemon عبر npx أو بإضافة سكربت في ملف package.json:

{
  "scripts": {
    "dev": "nodemon app.js"
  }
}

ثم قم بالتشغيل: npm run dev.

3. بداية سريعة — مثال عملي بسيط

أنشئ ملفاً باسم app.js يحتوي على خادم HTTP بسيط:

const http = require('http');

const server = http.createServer((req, res) => {
  res.writeHead(200, { 'Content-Type': 'text/plain' });
  res.end('مرحباً بالعالم!\n');
});

const PORT = 3000;
server.listen(PORT, () => {
  console.log(`الخادم يعمل على http://localhost:${PORT}/`);
});

الآن قم بتشغيل Nodemon:

nodemon app.js

سترى المخرجات التالية:

[nodemon] 3.1.0
[nodemon] لإعادة التشغيل في أي وقت، اكتب `rs`
[nodemon] مراقبة المسار(ات): *.*
[nodemon] مراقبة الامتدادات: js,mjs,cjs,json
[nodemon] بدء تشغيل `node app.js`
الخادم يعمل على http://localhost:3000/

حاول تغيير النص في res.end() إلى 'مرحباً Nodemon!\n' واحفظ الملف. سيقوم Nodemon تلقائياً بإعادة تشغيل الخادم، وسترى الرد المحدث عند تحديث الصفحة في المتصفح.

4. الطرق/الدوال/الفئات الأساسية

توفر Nodemon واجهة سطر أوامر (CLI) وAPI برمجي. فيما يلي الطرق والإمكانيات الأساسية مع الأمثلة.

4.1. nodemon([options]) — التشغيل البرمجي

التوقيع: nodemon([options: Object])

الوظيفة: تشغيل Nodemon برمجياً من سكربت Node.js. يتيح ضبط السلوك بدقة ومعالجة الأحداث.

مثال:

const nodemon = require('nodemon');

nodemon({
  script: 'app.js',
  ext: 'js json html',
  ignore: ['node_modules/', 'test/'],
  env: { NODE_ENV: 'development' }
});

توصيات