Нарушение на обратно съвместимостта в популярния NPM пакет доведе до сривове в различни проекти

В хранилището 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.

Потребителите на пакета create-react-app, разработван от Facebook и свързващ 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

Купете надежден хостинг за сайтове с защита от DDoS, VPS VDS сървъри 🔥 Купете надежден хостинг за сайтове с защита от DDoS, VPS VDS сървъри | ProHoster