يؤدي خرق التوافق مع الإصدارات السابقة في حزمة NPM الشائعة إلى حدوث أعطال في العديد من المشاريع

يشهد مستودع NPM انهيارًا هائلاً آخر للمشروع بسبب مشكلة في إصدار جديد من التبعية الشائعة. كان مصدر المشكلات هو الإصدار الجديد من حزمة mini-css-extract-plugin 2.5.0 ، المصممة لاستخراج CSS إلى ملفات منفصلة. تحتوي الحزمة على أكثر من 10 ملايين عملية تنزيل أسبوعية ويتم استخدامها كتبعية مباشرة لأكثر من 7 مشروع.

في الإصدار الجديد ، تم إجراء تغييرات انتهكت التوافق مع الإصدارات السابقة عند استيراد المكتبة وأدت إلى حدوث خطأ عند محاولة استخدام الإنشاء الصالح سابقًا "const MiniCssExtractPlugin = تتطلب ('mini-css-extract-plugin')" الموضح في الوثائق ، والتي عند التبديل إلى الإصدار الجديد يلزم استبدالها بـ "const MiniCssExtractPlugin = تتطلب (" mini-css-extract-plugin "). default".

تجلت المشكلة في المشاريع التي لا ترتبط صراحةً برقم الإصدار عند تضمين التبعيات. كحل بديل ، يوصى بإصلاح الارتباط بالإصدار السابق 2.4.5 عن طريق إضافة "تجاوزات": {"mini-css-extract-plugin": "2.4.5"} "في Yarn أو باستخدام الأمر" npm i -D - حفظ بدقة [البريد الإلكتروني محمي]»في NPM.

وكان من بين الضحايا مستخدمو حزمة create-reaction-app التي طورها Facebook ، والتي تتضمن mini-css-extract-plugin كعنصر تبعية. نظرًا لعدم وجود ارتباط برقم إصدار mini-css-extract-plugin ، انتهت محاولات تشغيل create-reaction-app بالخطأ "TypeError: MiniCssExtractPlugin ليس مُنشئًا". أثرت المشكلة أيضًا على الحزم @ wordpress / scripts و @ auth0 / auth0-spa-js و sql-formatter-gui و LedgerSMB و vip-go-mu-plugins و cybros و vue-cli و chore وما إلى ذلك.

المصدر: opennet.ru

إضافة تعليق