تتطلب بعض المشاريع غالبًا إصدارات محددة من البرامج المثبتة محليًا. يمكن أن يكون إما إصدارًا محددًا من node.js أو npm (على سبيل المثال ، npm @ 7 مع دعم مساحات العمل) ، أو قاعدة بيانات معينة ، ومدير الحزم ، وأدوات مساعدة أخرى لا يمكن تثبيتها من npm . في كثير من الأحيان أقوم بتنفيذ الأوامر في الدردشات أو الملف التمهيدي أو الويكي.
يسمح لك npm بالتصريح عن الإصدارات المطلوبة من node و npm في ملف package.json ، لكن لا يتحقق منها بأي شكل من الأشكال. لإصلاح ذلك وتوسيع قائمة الأدوات ، تمت كتابة إصدار محرك حزمة npm صغير . تعمل الحزمة ببساطة شديدة: أولاً ، تقرأ وصف البرنامج المطلوب من package.json ، ثم تبحث لمعرفة ما إذا كان البرنامج مثبتًا وما إذا كان الإصدار المثبت يطابق الإصدار الموصوف. وفي حالة فشل عمليات التحقق ، يتم عرض قائمة بالأخطاء.

لبدء استخدام الحزمة ، يجب أولاً تثبيت الحزمة من npm :
npm install --save-dev engine-versionصف قائمة الأدوات المطلوبة في package.json ( تنسيق الوصف ) :
{
...
"engines": {
"node": ">=16.0.0",
"npm": "~7.0.0",
"mysql": "*"
},
...
}أضف نصًا يقوم بتشغيل check in package.json ، على سبيل المثال ، قبل عملية بناء الحزمة:
{
...
"scripts": {
"prebuild": "engine-version",
"build": "my_build_script"
},
...
}
علاوة على ذلك ، من المخطط القيام بما يلي:
اجعل الأخطاء أكثر إفادة
قابل للتكوين باستخدام الوسيطات (التحذيرات بدلاً من الأخطاء)
أضف أنواعًا بديلة من التحقق من الإصدار للبرامج الشائعة التي لا تفهم الوسيطة --version (الآن يتم التحقق من الإصدار المثبت عن طريق استدعاء البرنامج مع الخيار --version في العملية الفرعية)