برمجة

npm

ما هو npm؟

npm تعني Node Package Manager. فتحها Isaac Schlueter سنة 2010 مع Node.js. الحزمة كود جاهز كتبه غيرك. package.json يحفظ اسم المشروع وقائمة الحزم. npm install يقرأ تلك القائمة ويضع الحزم في مجلد node_modules. package-lock.json يثبت النسخة الدقيقة كي يصل الكود نفسه إلى جهاز آخر غداً. Yarn وpnpm يقومان بعمل قريب لكنهما ليسا npm نفسه.

فيمَ يُستخدم npm؟

npm لإضافة مكتبة إلى المشروع وتشغيل سكربت بأمر واحد وإعطاء حزمة لغيرك.

  • تثبيت React ومكتبة أخرى
  • فتح الاختبار بـ npm test
  • إعداد المشروع على حاسوب آخر بالحزم نفسها
  • إرسال حزمتك إلى السجل

ماذا يمكن فعله باستخدام npm؟

بـ npm تضيف حزمة وتحذف القديمة وتشغّل السكربت في package.json. هو لا يرسم الصفحة بنفسه ولا يبني الخادم. الكود داخل الحزمة يعمل في مشروعك. تثبيت حزمة لا تعرفها قد يشغّل أمرها أيضاً.

هل تعلم npm صعب؟

تثبيت حزمة واحدة سهل. الصعوبة في النسخة والإذن. الحزمة تجلب حزمة أخرى أيضاً. إذا قدم بعضها يظهر تنبيه لكن المشروع قد يبقى يعمل. رمي ملف package-lock قد يجلب نسخة أخرى غداً. لا تضع مفتاح السجل في المستودع.

المزايا والحدود

الميزة: لا تُعاد كتابة المكتبة والقائمة تبقى في ملف واحد والتثبيت نفسه يتكرر على جهاز آخر. الحد: node_modules يكبر. ليس كل عمل صغير يحتاج حزمة. npm ليس Node.js نفسه.

أفكار أساسية

للحزمة اسم ونسخة. package.json القائمة. node_modules مكان الملفات المنزّلة.

  • dependencies كي يعمل المشروع
  • devDependencies للتجهيز فقط
  • scripts تربط الأمر باسم قصير
  • ملف القفل يحفظ النسخة

مثال قصير

هذا السطر يضيف حزمة React إلى قائمة المشروع وينزّل الملفات. لا يكتب React نفسه.

npm install react

أسئلة شائعة

  • هل npm وNode.js الشيء نفسه؟ لا. Node.js يشغّل البرنامج. npm يجلب الحزمة.
  • هل package.json هو الحزمة نفسها؟ لا. هو القائمة. ملف الحزمة داخل node_modules.
  • هل كل حزمة آمنة؟ لا. حزمة لا تعرفها قد تشغّل أمرها.