مقدمة إلى مدير الحزم npm
مقدمة إلى npm
npm
هو مدير الحزم القياسي لـ Node.js.
في سبتمبر 2022، تم الإبلاغ عن إدراج أكثر من 2.1 مليون حزمة في سجل npm، مما يجعله أكبر مستودع تعليمات برمجية للغة واحدة على وجه الأرض، ويمكنك التأكد من وجود حزمة لكل شيء (تقريبًا!).
بدأ الأمر كوسيلة لتنزيل وإدارة تبعيات حزم Node.js، ولكنه أصبح منذ ذلك الحين أداة تستخدم أيضًا في JavaScript للواجهة الأمامية.
TIP
Yarn
و pnpm
بدائل لـ npm cli. يمكنك التحقق منها أيضًا.
الحزم
تثبيت جميع التبعيات
يمكنك تثبيت جميع التبعيات المدرجة في ملف package.json
الخاص بك عن طريق التشغيل:
npm install
سيقوم بتثبيت كل ما يحتاجه المشروع، في مجلد node_modules
، وإنشائه إذا لم يكن موجودًا بالفعل.
تثبيت حزمة واحدة
يمكنك تثبيت حزمة واحدة عن طريق التشغيل:
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، فإن الفرق هو أن فشل بناء التبعية لن يتسبب في فشل التثبيت. ولكن تقع على عاتق برنامجك مسؤولية التعامل مع نقص التبعية. اقرأ المزيد عن التبعيات الاختيارية.
تحديث الحزم
تحديث الحزم سهل أيضًا، عن طريق تشغيل:
npm update
سيؤدي هذا إلى تحديث جميع التبعيات إلى أحدث إصداراتها.
يمكنك تحديد حزمة واحدة لتحديثها أيضًا:
npm update <package-name>
إزالة الحزم
لإزالة حزمة، يمكنك تشغيل:
npm uninstall <package-name>
الإصدار
بالإضافة إلى التنزيلات العادية، يدير npm
أيضًا الإصدار، بحيث يمكنك تحديد أي إصدار محدد من حزمة، أو طلب إصدار أعلى أو أقل مما تحتاجه.
في كثير من الأحيان ستجد أن مكتبة متوافقة فقط مع إصدار رئيسي لمكتبة أخرى.
أو أن خطأً في أحدث إصدار من مكتبة، لا يزال غير مصحح، يتسبب في مشكلة.
يساعد تحديد إصدار صريح من مكتبة أيضًا في إبقاء الجميع على نفس الإصدار المحدد من حزمة، بحيث يعمل الفريق بأكمله على نفس الإصدار حتى يتم تحديث ملف package.json
.
في كل هذه الحالات، يساعد الإصدار كثيرًا، ويتبع npm
معيار الإصدار الدلالي (semver).
يمكنك تثبيت إصدار معين من حزمة، عن طريق التشغيل
npm install <package-name>@<version>
يمكنك أيضًا تثبيت أحدث إصدار من حزمة، عن طريق التشغيل
npm install <package-name>@latest
تشغيل المهام
يدعم ملف package.json تنسيقًا لتحديد مهام سطر الأوامر التي يمكن تشغيلها باستخدام
npm run <task-name>
على سبيل المثال، إذا كان لديك ملف package.json بالمحتوى التالي:
{
"scripts": {
"start": "node index.js",
"test": "jest"
}
}
من الشائع جدًا استخدام هذه الميزة لتشغيل Webpack:
{
"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"
}
}
لذلك بدلاً من كتابة هذه الأوامر الطويلة، التي يسهل نسيانها أو الخطأ في كتابتها، يمكنك تشغيل
npm run watch
npm run dev
npm run prod