В хранилището на NPM се наблюдава нов масов срив на проекти заради проблеми с новата версия на една от популярните зависимости. Източник на проблемите стана новото издание на пакета mini-css-extract-plugin 2.5.0, предназначен за извличане на CSS в отделни файлове. Пакетът има над 10 милиона седмични изтегляния и се използва като пряка зависимост в повече от 7000 проекта.
В новата версия бяха направени промени, които нарушават обратната съвместимост при внасянето на библиотеката и водят до изведената грешка при опит за използване на преди допустимата и описана в документацията конструкция «const MiniCssExtractPlugin = require(‘mini-css-extract-plugin’)», която при преминаване към новата версия трябваше да бъде заменена с «const MiniCssExtractPlugin = require(«mini-css-extract-plugin»).default».
Проблемът се прояви в проекти, които не прилагат явна връзка с номера на версията при свързването на зависимостите. Като решение на проблема е препоръчано за фиксиране на връзката с предишната версия 2.4.5 чрез добавяне на ‘»overrides”: {«mini-css-extract-plugin»: «2.4.5»}’ в Yarn или използвайки командата «npm i -D —save-exact mini-css-extract-plugin@2.4.5» в NPM.
Сред засегнатите се оказаха потребители на разработвания от Facebook пакет create-react-app, който свързва mini-css-extract-plugin като зависимост. Поради липса на връзка с номера на версията mini-css-extract-plugin опитите за стартиране на create-react-app завършваха с извеждане на грешката «TypeError: MiniCssExtractPlugin is not a constructor». Проблемът засягаше също пакетите @wordpress/scripts, @auth0/auth0-spa-js, sql-formatter-gui, LedgerSMB, vip-go-mu-plugins, cybros, vue-cli, chore и др.
Източник: opennet.ru
