يشهد مستودع 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