مقدمة إلى مدير الحزم 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