يمكن للحزم على npm تعريف نصوص برمجة دورة الحياة في package.json الخاص بها. بعض الأكثر شيوعًا مذكورة أدناه، ولكن هناك العديد من الآخرين.
preinstall: يعمل قبل تثبيت الحزمةpostinstall: يعمل بعد تثبيت الحزمةpreuninstall: يعمل قبل إلغاء تثبيت الحزمةprepublishOnly: يعمل قبل نشر الحزمة
هذه النصوص البرمجية هي أوامر صدفة عشوائية يتوقع من مدير الحزم قراءتها وتنفيذها في الوقت المناسب. لكن تنفيذ نصوص برمجية عشوائية يمثل خطر أمان محتمل، لذا - على عكس عملاء npm الآخرين - لا ينفذ Bun نصوص برمجة دورة حياة عشوائية افتراضيًا.
postinstall
نص البرمجة postinstall مهم بشكل خاص. يُستخدم على نطاق واسع لبناء أو تثبيت الثنائيات الخاصة بالمنصة للحزم التي تم تنفيذها كـ إضافات Node.js أصلية. على سبيل المثال، node-sass هي حزمة شائعة تستخدم postinstall لبناء ملف ثنائي أصلي لـ Sass.
{
"name": "my-app",
"version": "1.0.0",
"dependencies": {
"node-sass": "^6.0.1"
}
}trustedDependencies
بدلاً من تنفيذ نصوص برمجية عشوائية، يستخدم Bun نهجًا "افتراضيًا آمنًا". يمكنك إضافة حزم معينة إلى قائمة السماح، وسيقوم Bun بتنفيذ نصوص برمجة دورة الحياة لتلك الحزم. لإخبار Bun بالسماح بنصوص برمجة دورة الحياة لحزمة معينة، أضف اسم الحزمة إلى مصفوفة trustedDependencies في package.json الخاص بك.
{
"name": "my-app",
"version": "1.0.0",
"trustedDependencies": ["node-sass"]
}بمجرد الإضافة إلى trustedDependencies، قم بتثبيت/إعادة تثبيت الحزمة. سيقرأ Bun هذا الحقل ويشغل نصوص برمجة دورة الحياة لـ my-trusted-package.
يتم السماح بأفضل 500 حزمة npm تحتوي على نصوص برمجة دورة الحياة افتراضيًا. يمكنك رؤية القائمة الكاملة هنا.
--ignore-scripts
لتعطيل نصوص برمجة دورة الحياة لجميع الحزم، استخدم العلامة --ignore-scripts.
bun install --ignore-scripts