Skip to content

مقدمة إلى مدير الحزم npm

مقدمة إلى npm

npm هو مدير الحزم القياسي لـ Node.js.

في سبتمبر 2022، تم الإبلاغ عن إدراج أكثر من 2.1 مليون حزمة في سجل npm، مما يجعله أكبر مستودع تعليمات برمجية للغة واحدة على وجه الأرض، ويمكنك التأكد من وجود حزمة لكل شيء (تقريبًا!).

بدأ الأمر كوسيلة لتنزيل وإدارة تبعيات حزم Node.js، ولكنه أصبح منذ ذلك الحين أداة تستخدم أيضًا في JavaScript للواجهة الأمامية.

TIP

Yarn و pnpm بدائل لـ npm cli. يمكنك التحقق منها أيضًا.

الحزم

تثبيت جميع التبعيات

يمكنك تثبيت جميع التبعيات المدرجة في ملف package.json الخاص بك عن طريق التشغيل:

bash
npm install

سيقوم بتثبيت كل ما يحتاجه المشروع، في مجلد node_modules، وإنشائه إذا لم يكن موجودًا بالفعل.

تثبيت حزمة واحدة

يمكنك تثبيت حزمة واحدة عن طريق التشغيل:

bash
npm install <package-name>

علاوة على ذلك، منذ npm 5، يضيف هذا الأمر <package-name> إلى تبعيات ملف package.json. قبل الإصدار 5، كنت بحاجة إلى إضافة العلامة --save.

غالبًا ما سترى المزيد من العلامات المضافة إلى هذا الأمر:

  • --save-dev (أو -D) الذي يضيف الحزمة إلى قسم devDependencies في ملف package.json.
  • --no-save الذي يمنع حفظ الحزمة في ملف package.json.
  • --no-optional الذي يمنع تثبيت التبعيات الاختيارية.
  • --save-optional الذي يضيف الحزمة إلى قسم optionalDependencies في ملف package.json.

يمكن أيضًا استخدام الاختصارات للعلامات:

  • -S: --save
  • -D: --save-dev
  • -O: --save-optional

الفرق بين devDependencies و dependencies هو أن الأول يحتوي على أدوات التطوير، مثل مكتبة الاختبار، بينما يتم تجميع الأخير مع التطبيق في الإنتاج.

بالنسبة إلى optionalDependencies، فإن الفرق هو أن فشل بناء التبعية لن يتسبب في فشل التثبيت. ولكن تقع على عاتق برنامجك مسؤولية التعامل مع نقص التبعية. اقرأ المزيد عن التبعيات الاختيارية.

تحديث الحزم

تحديث الحزم سهل أيضًا، عن طريق تشغيل:

bash
npm update

سيؤدي هذا إلى تحديث جميع التبعيات إلى أحدث إصداراتها.

يمكنك تحديد حزمة واحدة لتحديثها أيضًا:

bash
npm update <package-name>

إزالة الحزم

لإزالة حزمة، يمكنك تشغيل:

bash
npm uninstall <package-name>

الإصدار

بالإضافة إلى التنزيلات العادية، يدير npm أيضًا الإصدار، بحيث يمكنك تحديد أي إصدار محدد من حزمة، أو طلب إصدار أعلى أو أقل مما تحتاجه.

في كثير من الأحيان ستجد أن مكتبة متوافقة فقط مع إصدار رئيسي لمكتبة أخرى.

أو أن خطأً في أحدث إصدار من مكتبة، لا يزال غير مصحح، يتسبب في مشكلة.

يساعد تحديد إصدار صريح من مكتبة أيضًا في إبقاء الجميع على نفس الإصدار المحدد من حزمة، بحيث يعمل الفريق بأكمله على نفس الإصدار حتى يتم تحديث ملف package.json.

في كل هذه الحالات، يساعد الإصدار كثيرًا، ويتبع npm معيار الإصدار الدلالي (semver).

يمكنك تثبيت إصدار معين من حزمة، عن طريق التشغيل

bash
npm install <package-name>@<version>

يمكنك أيضًا تثبيت أحدث إصدار من حزمة، عن طريق التشغيل

bash
npm install <package-name>@latest

تشغيل المهام

يدعم ملف package.json تنسيقًا لتحديد مهام سطر الأوامر التي يمكن تشغيلها باستخدام

bash
npm run <task-name>

على سبيل المثال، إذا كان لديك ملف package.json بالمحتوى التالي:

json
{
  "scripts": {
    "start": "node index.js",
    "test": "jest"
  }
}

من الشائع جدًا استخدام هذه الميزة لتشغيل Webpack:

json
{
  "scripts": {
    "watch": "webpack --watch --progress --colors --config webpack.conf.js",
    "dev": "webpack --progress --colors --config webpack.conf.js",
    "prod": "NODE_ENV=production webpack -p --config webpack.conf.js"
  }
}

لذلك بدلاً من كتابة هذه الأوامر الطويلة، التي يسهل نسيانها أو الخطأ في كتابتها، يمكنك تشغيل

bash
npm run watch
npm run dev
npm run prod