أثناء بحثي عن الفرق بين
npm و pnpm
وجدت أن npm
تمتلك مشكلة كارثيه ? إسمها
Phantom dependencies
ماهي هذه المشكلة و كيف يمكن حلها
ثريد ?? https://t.co/tNMxzJPYWv
أولا ماهو معنى مصطلح
Phantom dependencies ?
يعني أنك تستخدم مكتبات packages
في الكود الخاص بك
لكن لم يتم تثبيتها و إضافتها من ضمن ال dependencies في
package.json
??
كما نلاحظ الصور تحت تم تثبيت مكتبه abc
و تمتلك هذه المكتبة dependencies
و هي
foo and bar
لكن في الكود الخاص بنا يتم إستدعاء و إستخدام foo and bar
بشكل طبيعي و بدون ظهور أخطأ ?
?? https://t.co/C0yMswBuvn
لكن ماهي المشكلة إذا تم إستخدام
مكتبه foo and bar في
الكود الخاص بنا ?
توجد مشكلة كبيره جدا
نحن لم نقم بتثيب foo and bar في
package.json
و لا يمكن التحكم بإصدار المكتبات.
من أجل فهم هذه المشكلة.
تخيل معي أنك تستخدم دوال مكتبه foo الإصدار 2 في الكود الخاص بك
??
و كل شيء يعمل بشكل طبيعي
لكن مع مرور الوقت
تطورت مكتبه abc و نزل الإصدار 4
و تم تحديث dependencies الخاصه بها
تم إستخدام إصدار 3 من مكتبه foo
لكن انت تستخدم دوال مكتبه foo 2
في الكود
و بعد هذا التحديث لن يشتغل الكود ?
??