الاسم
حتى يتم نشر الحزمة في المستودع ، يمكن أيضًا تسجيل الحقل أيضًا. السؤال هو أن هذا الحقل مناسب للاستخدام لتسمية ملف التثبيت أو ، على سبيل المثال ، لعرض اسم المنتج على صفحة الويب الخاصة به. بشكل عام ، "ماذا تسمي اليخت ، .."
الإصدار
الفكرة الرئيسية هي عدم نسيان زيادة رقم الإصدار أثناء توسيع الوظائف ، وإصلاح الأخطاء ، ... لسوء الحظ ، لا يزال بإمكانك في مكتبنا العثور على المنتجات ذات الإصدار غير المتغير 0.0.0. ثم خمن أي نوع من الوظائف يعمل للعميل ...
الرئيسية
يوضح هذا
الحقل الملف الذي سيتم تشغيله عند بدء تطبيقنا (`npm start`). إذا تم استخدام الحزمة كاعتماد ، فعندئذٍ سيتم استيراد الملف عند استخدام الوحدة الخاصة بنا بواسطة تطبيق آخر. الدليل الحالي هو الدليل حيث يوجد ملف `package.json`.
وأيضًا ، إذا استخدمنا ، على سبيل المثال ،
vscode ، فسيتم تشغيل الملف المحدد في هذا الحقل عندما يتم استدعاء المصحح أو عند تشغيل الأمر "تنفيذ".
قد يتم حذف الملحق ".js". بل هي نتيجة لجميع حالات الاستخدام الممكنة ، لذلك لم يتم توضيحها مباشرة في الوثائق.
المحركات
يحتوي هذا الحقل على المجموعة: {"node":
version ، "npm":
version ، ...}.
أنا أعرف حقلي "العقدة" و "npm". إنها تحدد إصدارات node.js و npm اللازمة لتطبيقنا للعمل. يتم التحقق من الإصدارات بتشغيل الأمر npm install.
الصيغة القياسية لتحديد إصدارات حزم التبعية مدعومة: بدون البادئة (نسخة واحدة) ، البادئة "~" (يجب أن يتطابق أول رقمين من الإصدار) والبادئة "^" (يجب أن يتطابق فقط الرقم الأول من الإصدار). إذا كانت هناك بادئة ، فيجب أن يكون الإصدار أكبر من أو يساوي ذلك المحدد في هذا الحقل. مجرد قائمة الإصدارات ؛ إشارة صريحة أكثر ، أقل ، ... إلخ. يعمل أيضا.
تنويه يتحقق "تثبيت Npm" من الإصدارات المحددة في "المحركات" فقط في حالة تمكين الوضع "صارم على المحرك". نقوم بتضمينه لكل مشروع ، مع إضافة ملف. npmrc مع السطر: "engine-صارم = صحيح". ذات مرة ، "npm install" قام بهذا الاختيار بشكل افتراضي.
بعض الحاويات ، على الأقل في الوثائق ، تكتب أن الإصدارات المناسبة سيتم استخدامها بشكل افتراضي. في هذه الحالة ، نحن نتحدث عن Azure.
مثال:
"engines": { "node": "~8.11",
أشعل النار العادي
والملك عارية!
تم الاتفاق مع العميل بشكل متكرر على أن الإصدار المطلوب من "node.js" يجب أن يكون على الأقل 8. عندما تم تسليم الإصدارات الأولية من التطبيق ، عمل كل شيء. "يوم واحد" بعد تسليم الإصدار الجديد على العميل ، توقف تشغيل التطبيق. كل شيء يعمل في اختباراتنا.
كانت المشكلة أنه في هذا الإصدار بدأنا في استخدام الوظائف التي كانت مدعومة فقط من الإصدار 8 node.js. لم يتم ملء حقل "المحركات" ، لذلك لم يلاحظ أحد من قبل أن العميل لديه نسخة قديمة من node.js. (خدمات الويب Azure الافتراضية).
مخطوطات
يحتوي الحقل على مجموعة من النموذج: {"script1":
script1 ، "script2":
script2 ، ...}.
هناك نصوص قياسية تعمل في حالة معينة. على سبيل المثال ، سيتم تنفيذ البرنامج النصي "تثبيت" بعد تشغيل "تثبيت npm". من الملائم للغاية ، على سبيل المثال ، التحقق من توفر البرامج اللازمة للتطبيق للعمل. أو ، على سبيل المثال ، لضغط جميع الملفات الثابتة المتاحة من خلال خدمة الويب الخاصة بنا حتى لا تضغط عليها بسرعة.
في هذه الحالة ، لا يمكنك أن تقتصر فقط على الأسماء القياسية. من أجل تنفيذ برنامج نصي عشوائي ، تحتاج إلى تشغيل "npm run
script-name ".
من السهل جمع جميع النصوص المستخدمة في مكان واحد.
مثال:
"scripts": { "install": "node scripts/install-extras", "start": "node src/well/hidden/main/server extra_param_1 extra_param_2", "another-script": "node scripts/another-script" }
ملاحظة: يمكن حذف الامتداد ".js" في معظم الحالات.