في لغة node.js ، لا يوجد فرق أساسي بين الحزم والوحدات النمطية. الحزم هي تجريد أعمق على أساس الوحدات النمطية. تغلف الحزم وظيفة مستقلة معينة للإصدار والتحديث وإدارة التبعية والتحكم في الإصدار. تقوم Node.js بتنفيذ آلية الحزمة وفقًا لمواصفات CommonJS وتطور NPM لحل احتياجات إصدار الحزمة والاستحواذ.
حزمة Node.js هي دليل يحتوي على حزمة ملف الوصف الحزمة. json بتنسيق JSON. تتبع حزمة Node.js بشكل أساسي مواصفات CommonJS ، لذلك لها الخصائص التالية:
ميزات الحزمة المحددة بواسطة مواصفات CommonJS:
1) يحتوي الدليل على المستوى الأعلى على ملف package.json ؛
2) يقوم دليل BIN بتخزين الملفات الثنائية ؛
3) يخزن دليل LIB ملفات JavaScript ؛
4) مستندات متاجر DOC.
5) اختبارات وحدة اختبار دليل.
وحدة Node.js والملف تتوافق واحد تلو الآخر. لا يمكن أن يكون الملف ملف مصدر JavaScript أو ملف ثنائي فحسب ، بل أيضًا دليل. أبسط حزمة هي وحدة دليل.
عادةً ما تكون حزمة Node.js عبارة عن مجموعة من بعض الوحدات النمطية ، والتي توفر تجريدات عالية المستوى تعتمد على الوحدات النمطية ، والتي تعادل توفير بعض مكتبات وظائف الواجهة الثابتة.
من خلال تخصيص package.json ، يمكننا إنشاء حزم أكثر تعقيدًا وأكثر اكتمالًا وأكثر موحدة للنشر.
عندما يقوم Node.js باستدعاء الحزمة ، يقوم أولاً بفحص الحقل الرئيسي لملف Package.json في الحزمة ويستخدمه كوحدة واجهة الحزمة. إذا لم يكن الحقل الرئيسي لملف package.json ، فسيحاول node.js العثور على index.js أو index.node كواجهة الحزمة.
ملف package.json هو ملف يستخدمه مواصفات CommonJS لوصف الحزمة. يجب أن يحتوي ملف package.json الذي يتوافق تمامًا مع المواصفات على الحقول التالية:
1) الاسم: اسم الحزمة. اسم الحزمة فريد من نوعه ويتألف من أحرف صغيرة وأرقام ورسومات سوية ، ولا يمكن أن تحتوي على مساحات.
2) الوصف: وصف الحزمة. وصف موجز للحزمة.
3) الإصدار: رقم الإصدار. سلسلة الإصدار التي تلبي مواصفات التعرف على الإصدار الدلالي.
4) الكلمات الرئيسية: مجموعة الكلمات الرئيسية ، تستخدم عادة للبحث.
5) المشرفون: صفيف المشرفين. يحتوي كل عنصر على اسم ، والبريد الإلكتروني (اختياري) ، وحقول الويب (اختياري).
6) المساهمين: مجموعة من المساهمين. التنسيق هو نفس صفيف المشرف. يجب أن يكون مؤلف الحزمة العنصر الأول في صفيف المساهم.
7) الأخطاء: يمكن أن يكون العنوان المراد إرسال الأخطاء عنوان URL أو بريدًا إلكترونيًا.
8) التراخيص: صفيف الترخيص. يجب أن يحتوي كل عنصر على نوع (اسم الترخيص) وعنوان URL (العنوان المرتبط بنص الترخيص).
9) المستودعات: مجموعة من عناوين استضافة مستودعات المستودعات. يجب أن يحتوي كل عنصر على نوع (نوع المستودع ، مثل GIT) وعنوان URL (عنوان المستودع) والمسار (اختياري نسبة إلى مسار المستودع).
10) التبعيات: تبعيات الحزمة. هي صفيف نقابي يتكون من اسم الحزمة ورقم الإصدار.
ملاحظة: إن مواصفات "التعرف على الإصدار الدلالي" هي مجموعة من مواصفات تسمية الإصدار التي اقترحتها الدول الأجنبية. كان الغرض الأصلي هو حل مشكلات مقارنة حجم عدد الإصدار المختلفة ، ويتم اعتمادها حاليًا من قبل العديد من أنظمة إدارة الحزم.
فيما يلي حزمة مثال. json يتوافق تمامًا مع مواصفات CommonJS:
نسخة الكود كما يلي:
{
"الاسم": "TestPackage" ،
"الوصف": "حزمة CommonJs." ،
"الإصدار": "0.1.0" ،
"الكلمات الرئيسية": [
"TestPackage" ،
"liq"
]
"المشرفون": [
{
"الاسم": "liq" ،
"البريد الإلكتروني": "[email protected]" ،
}
]
"المساهمين": [
{
"الاسم": "liq" ،
"الويب": "http://blog.csdn.net/chszs"
}
]
"الأخطاء": {
"البريد": "[email protected]" ،
"الويب": "http://blog.csdn.net/chszs"
} ،
"التراخيص": [
{
"اكتب": "Apache License v2" ،
"url": "http://www.apache.org/licenses/apache2.html"
}
]
"المستودعات": [
{
"النوع": "git" ،
"url": "http://github.com/chszs/packagetest.git"
}
]
"التبعيات": {
"WebKit": "1.2" ،
"SSL": {
"Gnutls": ["1.0" ، "2.0"] ،
"Openssl": "0.9.8"
}
}
}