pnpm-lock.yaml. أما حزم OpenClaw المنشورة على npm
فتستخدم npm-shrinkwrap.json، وهو ملف قفل التبعيات القابل للنشر في npm، بحيث
تستخدم عمليات تثبيت الحزم مخطط التبعيات الذي تمت مراجعته أثناء الإصدار.
النسخة السهلة
Shrinkwrap هو إيصال لشجرة التبعيات التي تُشحن مع حزمة npm. وهو يخبر npm بإصدارات الحزم الانتقالية الدقيقة التي يجب تثبيتها. بالنسبة إلى إصدارات OpenClaw، يعني ذلك:- لا تطلب الحزمة المنشورة من npm اختراع مخطط تبعيات جديد أثناء وقت التثبيت؛
- تصبح تغييرات التبعيات أسهل في المراجعة لأنها تظهر في ملف قفل؛
- يمكن للتحقق من الإصدار اختبار المخطط نفسه الذي سيثبته المستخدمون؛
- تصبح مفاجآت حجم الحزمة أو التبعيات الأصلية أسهل في الاكتشاف قبل النشر.
openclaw security audit، أو منشأ الحزمة،
أو اختبارات تثبيت الدخان.
النموذج الذهني المختصر:
| الملف | أين يهم | ما الذي يعنيه |
|---|---|---|
pnpm-lock.yaml | OpenClaw source checkout | مخطط تبعيات المشرفين |
npm-shrinkwrap.json | حزمة npm منشورة | مخطط تثبيت npm للمستخدمين |
package-lock.json | تطبيقات npm المحلية | ليس عقد نشر OpenClaw |
لماذا يستخدمه OpenClaw
OpenClaw هو Gateway، ومضيف Plugin، وموجّه نماذج، وبيئة تشغيل للوكلاء. يمكن أن يؤثر التثبيت الافتراضي في وقت بدء التشغيل، واستخدام القرص، وتنزيلات الحزم الأصلية، والتعرض لسلسلة التوريد. يوفر Shrinkwrap حدًا مستقرًا لمراجعة الإصدار:- يستطيع المراجعون رؤية حركة التبعيات الانتقالية؛
- تستطيع أدوات التحقق من الحزم رفض الانحراف غير المتوقع في ملف القفل؛
- يمكن لقبول الحزم اختبار التثبيتات بالمخطط الذي سيُشحن؛
- يمكن لحزم Plugin حمل مخطط تبعياتها المقفل بدلًا من الاعتماد على الحزمة الجذرية لامتلاك تبعيات Plugin فقط.
التفاصيل التقنية
تتضمن حزمة npm الجذريةopenclaw وحزم npm الخاصة بـ Plugin المملوكة لـ OpenClaw
ملف npm-shrinkwrap.json عند نشرها. يمكن أيضًا لحزم Plugin المناسبة والمملوكة لـ OpenClaw
النشر مع bundledDependencies صريحة، بحيث تُحمل ملفات تبعيات وقت التشغيل الخاصة بها
داخل أرشيف Plugin بدلًا من الاعتماد فقط على حل التبعيات وقت التثبيت.
حافظ على هذا الحد بهذا الشكل:
pnpm-lock.yaml. وهذا يحافظ على حد عمر
تبعيات pnpm، والتجاوزات، ومراجعة التصحيحات كما هو.
استخدم أوامر الجذر فقط عند تحديث الحزمة الجذرية عمدًا
دون لمس حزم Plugin:
pnpm-lock.yamlnpm-shrinkwrap.json- حمولات تبعيات Plugin المضمّنة
- أي فرق في
package-lock.json
package-lock.json للحزم المنشورة من OpenClaw.
لفحص حزمة جذرية منشورة: