Przerwa w kompatybilności wstecznej w popularnym pakiecie NPM spowodowała awarie w różnych projektach.

Repozytorium NPM przeżywa kolejną masową przerwę w działaniu projektów z powodu problemów w nowej wersji jednej z popularnych zależności. Źródłem problemów było nowe wydanie pakietu mini-css-extract-plugin 2.5.0, przeznaczonego do wyodrębniania CSS do oddzielnych plików. Pakiet ma ponad 10 milionów pobrań tygodniowo i jest używany jako bezpośrednia zależność od ponad 7 tysięcy projektów.

W nowej wersji wprowadzono zmiany, które naruszały kompatybilność wsteczną przy imporcie biblioteki i prowadziły do ​​błędu przy próbie użycia obowiązującej wcześniej i opisanej w dokumentacji konstrukcji „const MiniCssExtractPlugin = require('mini-css-extract-plugin') ”, które przy przejściu na nową wersję należało zastąpić „const MiniCssExtractPlugin = require(„mini-css-extract-plugin”).default”.

Problem objawiał się w projektach, które nie wiązały się jawnie z numerem wersji podczas uwzględniania zależności. Jako obejście zaleca się naprawienie łącza do poprzedniej wersji 2.4.5 poprzez dodanie „”overrides”: {„mini-css-extract-plugin”: „2.4.5”}” w Yarn lub za pomocą polecenia „ npm i -D" --save-exact [email chroniony]„w NMP.

Wśród ofiar byli użytkownicy pakietu create-react-app opracowanego przez Facebooka, który łączy wtyczkę mini-css-extract w formie zależności. Ze względu na brak powiązania z numerem wersji wtyczki mini-css-extract, próby uruchomienia aplikacji create-react-app kończyły się błędem „TypeError: MiniCssExtractPlugin nie jest konstruktorem”. Problem dotyczył także pakietów @wordpress/scripts, @auth0/auth0-spa-js, sql-formatter-gui, LedgerSMB, vip-go-mu-plugins, cybros, vue-cli, chore itp.

Źródło: opennet.ru

Dodaj komentarz