Skip to content

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

مقدمة إلى npm

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

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

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

TIP

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

الحزم

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

يمكنك تثبيت جميع التبعيات المدرجة في ملف 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