تظهر رسالة الخطأ “[nodemon] Internal watch failed: watch ENOSPC” عند تشغيل الأمر “nodemon app.js” في نظام التشغيل Ubuntu 14.04.3 LTS. هذه المشكلة تنبع من نفاد المساحة المخصصة لمراقبة التغييرات في الملفات (watcher) عند استخدام Nodemon. لفهم هذه المشكلة بشكل أفضل، دعونا نقم بتحليل العناصر المختلفة في السياق.
أولاً وقبل كل شيء، يجدر بنا التأكد من أنك قمت بتثبيت Node.js وnpm بنجاح، ويبدو أن عملية التثبيت قد تمت بنجاح.
ثم، قمت بتثبيت Nodemon بنجاح أيضاً، ولكن عند تشغيل “nodemon app.js”، واجهت رسالة الخطأ المشار إليها.
سبب هذه المشكلة يعود إلى نفاد مساحة الرصد (ENOSPC) في نظام الملفات، حيث يقوم Nodemon بمراقبة التغييرات في الملفات ويستخدم النظام لذلك. في Ubuntu، قد يحدث هذا الخطأ عندما يتجاوز عدد الملفات المراقبة حد معين.
لحل هذه المشكلة، يمكنك زيادة عدد الملفات المراقبة المسموح بها في نظام الملفات. يمكنك تحقيق ذلك عبر الأمر التالي:
bashecho fs.inotify.max_user_watches=524288 | sudo tee -a /etc/sysctl.conf && sudo sysctl -p
هذا الأمر يقوم بتعديل إعدادات نظام الملفات للسماح بمراقبة عدد أكبر من الملفات. بعد تنفيذ هذا الأمر، قم بإعادة تشغيل النظام أو استخدم الأمر:
bashsudo sysctl -p
بعد ذلك، يجب أن تتمكن من تشغيل “nodemon app.js” بدون مشاكل. تأكد من فحص أي تغييرات في التكوينات الخاصة بنظام الملفات ومتابعة العملية.
بالنسبة لملاحظات الجانب الإضافية، يبدو أن إصدار Node.js و npm و nodemon تم تحديدها بنجاح. يجب عليك أيضاً النظر في الترقية إلى إصدارات أحدث لـ Node.js و npm لضمان استفادتك من أحدث الميزات والتحسينات.
مع هذا، يمكنك الآن الاستمتاع بتشغيل تطبيقك باستخدام nodemon دون مواجهة مشاكل في مراقبة التغييرات في الملفات.
المزيد من المعلومات
بالطبع، دعونا نوسع المزيد في فهم الموقف ونقدم تفصيلات إضافية حول بعض النقاط المهمة.
أولاً، يبدو أنك تستخدم إصدارًا قديمًا لـ Node.js وهو “v0.10.25”. يُفضل بشدة ترقية إصدار Node.js إلى نسخة أحدث للاستفادة من تحسينات الأداء وإصلاحات الأمان والميزات الجديدة. في الوقت الحالي، توفر إصدارات أحدث من Node.js دعمًا أفضل لميزات ECMAScript الحديثة وتحسينات في مجال أداء التطبيق.
بالنسبة لـ npm، الإصدار “1.3.10” هو قديم أيضًا، ويُنصح بترقيته إلى الإصدار الأحدث للحصول على أفضل استقرار وتحسينات في أداء إدارة الحزم.
لتحديث Node.js و npm، يمكنك استخدام أداة nvm (Node Version Manager) التي تسمح بتبديل إصدارات Node.js بسهولة. يمكنك تثبيت nvm عبر الأمر التالي:
bashcurl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.1/install.sh | bash
بعد التثبيت، قم بإعادة تحميل ملف التكوين (مثل .bashrc
أو .zshrc
) وثم استخدم الأمر التالي لتثبيت إصدار Node.js الجديد:
bashnvm install node
واختر الإصدار الذي ترغب في تثبيته. بعد ذلك، يمكنك تحديث npm إلى أحدث إصدار باستخدام:
bashnpm install -g npm
الآن، بعد ترقية Node.js و npm، يمكنك التحقق مما إذا كانت مشكلة ENOSPC لا تزال قائمة عند تشغيل Nodemon.
هل هناك أي تفاصيل إضافية ترغب في معرفتها أو أي أسئلة أخرى قد تكون لديك؟