هذا هو الأمر npm-shrinkwrap الذي يمكن تشغيله في مزود الاستضافة المجانية OnWorks باستخدام إحدى محطات العمل المجانية المتعددة على الإنترنت مثل Ubuntu Online أو Fedora Online أو محاكي Windows عبر الإنترنت أو محاكي MAC OS عبر الإنترنت
برنامج:
اسم
npm- يتقلص - تأمين إصدارات التبعية
موجز
npm يتقلص
الوصف
يقوم هذا الأمر بتأمين إصدارات تبعيات الحزمة بحيث يمكنك التحكم فيها
بالضبط ما هي إصدارات كل تبعية سيتم استخدامها عند تثبيت الحزمة الخاصة بك. ال
package.json لا يزال الملف مطلوبًا إذا كنت تريد استخدام الآلية الوقائية الوطنية تثبيت.
افتراضيا، الآلية الوقائية الوطنية تثبيت يقوم بتثبيت تبعيات الهدف بشكل متكرر (كما هو محدد في
package.json) ، واختيار أحدث إصدار متاح يلبي التبعية
نمط semver. في بعض الحالات ، خاصة عند شحن البرامج حيث كل تغيير
تتم إدارتها بإحكام ، فمن المستحسن تحديد كل نسخة من كل تبعية بشكل كامل
بشكل متكرر بحيث لا تلتقط عمليات الإنشاء والنشر اللاحقة أحدث
إصدارات التبعية التي تفي بنمط semver. تحديد semver معين
أنماط في كل تبعية package.json من شأنه أن يسهل ذلك ، لكن هذا ليس دائمًا
ممكن أو مرغوب فيه ، كما هو الحال عندما يمتلك مؤلف آخر حزمة npm. من الممكن أيضا
تحقق من التبعيات مباشرة في التحكم في المصدر ، ولكن قد يكون ذلك غير مرغوب فيه للآخرين
الأسباب.
كمثال ، ضع في اعتبارك الحزمة أ:
{
"الاسم": "أ"،
"الإصدار": "0.1.0"،
"التبعيات": {
"ب": "<0.1.0"
}
}
الحزمة ب:
{
"الاسم": "ب"،
"الإصدار": "0.0.1"،
"التبعيات": {
"C": "<0.1.0"
}
}
والحزمة ج:
{
"الاسم": "C"،
"الإصدار": "0.0.1"
}
إذا كانت هذه هي الإصدارات الوحيدة من A و B و C المتوفرة في التسجيل ، فإن ملف الآلية الوقائية الوطنية
تثبيت A سيتم تثبيت:
[البريد الإلكتروني محمي]
"- [البريد الإلكتروني محمي]
"- [البريد الإلكتروني محمي]
ومع ذلك، إذا [البريد الإلكتروني محمي] تم نشره ، ثم جديد الآلية الوقائية الوطنية تثبيت A سيتم تثبيت:
[البريد الإلكتروني محمي]
"- [البريد الإلكتروني محمي]
"- [البريد الإلكتروني محمي]
على افتراض أن الإصدار الجديد لم يعدل تبعيات B´. بالطبع الإصدار الجديد من بي
يمكن أن تتضمن نسخة جديدة من C وأي عدد من التبعيات الجديدة. إذا كانت هذه التغييرات
غير مرغوب فيه ، يمكن لمؤلف A تحديد التبعية على [البريد الإلكتروني محمي]. ومع ذلك ، إذا كان مؤلف أ
ومؤلف B ليسوا نفس الشخص ، ولا توجد طريقة لمؤلف A ليقول إنه أو
إنها لا تريد أن تسحب النسخ المنشورة حديثًا من لغة سي عندما لم يتغير الحرف B على الإطلاق.
في هذه الحالة ، يمكن لمؤلف A تشغيل
npm يتقلص
هذا يولد npm-shrinkwrap.json، والتي ستبدو مثل هذا:
{
"الاسم": "أ"،
"الإصدار": "1.1.0"،
"التبعيات": {
"ب": {
"الإصدار": "1.0.1"،
"from": "[email protected]"،
"تم الحل": "https://registry.npmjs.org/B/-/B-1.0.1.tgz" ،
"التبعيات": {
"ج": {
"الإصدار": "1.0.1"،
"from": "org / C # v1.0.1"،
"resolved": "git://github.com/org/C.git#5c380ae319fc4efe9e7f2d9c78b0faa588fd99b4"
}
}
}
}
}
قام أمر shrinkwrap بتأمين التبعيات بناءً على ما هو حاليًا
المثبتة في node_modules. تم تغيير سلوك التثبيت إلى:
1. يتم إعادة إنتاج شجرة الوحدة الموصوفة بواسطة غلاف الانكماش. هذا يعني إعادة إنتاج
الهيكل الموصوف في الملف ، باستخدام الملفات المحددة المشار إليها في "تم حلها" إذا
متاح ، والعودة إلى دقة الحزمة العادية باستخدام "الإصدار" إذا لم يكن هناك أحد.
2. يتم السير على الشجرة ويتم تثبيت أي تبعيات مفقودة بالطريقة المعتادة.
باستخدام يتقلص بكيج
لا يختلف استخدام الحزمة المنكمشة عن استخدام أي حزمة أخرى: يمكنك ذلك الآلية الوقائية الوطنية
تثبيت يدويًا ، أو إضافة تبعية إلى ملف package.json ملف و الآلية الوقائية الوطنية تثبيت هنا.
ابني يتقلص بكيج
لتقليص حزمة موجودة:
1. شغل الآلية الوقائية الوطنية تثبيت في جذر الحزمة لتثبيت الإصدارات الحالية للجميع
التبعيات.
2. تحقق من أن الحزمة تعمل بالشكل المتوقع مع هذه الإصدارات.
3. شغل الآلية الوقائية الوطنية العبوة، أضف npm-shrinkwrap.json للوصول ونشر الحزمة الخاصة بك.
لإضافة أو تحديث تبعية في حزمة متقلصة:
1. شغل الآلية الوقائية الوطنية تثبيت في جذر الحزمة لتثبيت الإصدارات الحالية للجميع
التبعيات.
2. قم بإضافة أو تحديث التبعيات. الآلية الوقائية الوطنية تثبيت --حفظ كل حزمة جديدة أو محدثة
بشكل فردي لتحديث package.json و shrinkwrap. لاحظ أنه يجب أن يكونوا كذلك
صراحة ليتم تثبيتها: تشغيل الآلية الوقائية الوطنية تثبيت مع عدم وجود حجج سوف
مجرد إعادة إنتاج غلاف يتقلص الموجود.
3. تحقق من أن الحزمة تعمل كما هو متوقع مع التبعيات الجديدة.
4. الالتزام الجديد npm-shrinkwrap.json، وانشر حزمتك.
يمكنك استخدام تعليمات npm التي عفا عليها الزمن لعرض التبعيات مع الإصدارات الأحدث المتوفرة.
أخرى ملاحظة
يجب أن يكون ملف shrinkwrap متسقًا مع الحزمة package.json ملف. الآلية الوقائية الوطنية العبوة
ستفشل إذا لم يتم تثبيت التبعيات المطلوبة بالفعل ، لأن ذلك سيؤدي إلى ملف
shrinkwrap الذي لن يعمل في الواقع. وبالمثل ، سيفشل الأمر إذا كان هناك
الحزم الدخيلة (لا يشار إليها بواسطة package.json) ، لأن ذلك من شأنه أن يشير إلى ذلك
package.json ليس صحيحا.
منذ الآلية الوقائية الوطنية العبوة يهدف إلى تأمين تبعياتك للاستخدام الإنتاجي ،
تبعيات التنمية لن يتم تضمينها إلا إذا قمت بتعيين ملف - ديف علم عند الجري
الآلية الوقائية الوطنية العبوة. في حالة التثبيت تبعيات التنمية مستبعدة ، ثم يقوم npm بطباعة تحذير.
إذا كنت تريد تثبيتها مع الوحدة الخاصة بك بشكل افتراضي ، فيرجى التفكير في إضافتها
إلى التبعيات بدلا من ذلك.
إذا كانت العبوة المنكمشة A تعتمد على الحزمة B المنكمشة ، فلن يتم تغليف B´s
تستخدم كجزء من تركيب A. ومع ذلك ، لأن غلاف A´s مصنوع من
تثبيت صالح لـ B ويحدد بشكل متكرر جميع التبعيات ومحتويات B´s
سيتم تضمين shrinkwrap ضمنيًا في غلاف الانكماش A.
المحاذير
إذا كنت ترغب في قفل البايتات المحددة المضمنة في حزمة ، على سبيل المثال لديك
ثقة بنسبة 100٪ في القدرة على إعادة إنتاج النشر أو البناء ، إذًا يجب عليك التحقق
تبعياتك في التحكم بالمصادر ، أو اتبع آلية أخرى يمكن التحقق منها
المحتويات بدلاً من الإصدارات.
استخدم npm-shrinkwrap عبر الإنترنت باستخدام خدمات onworks.net