Povreda kompatibilnosti unatrag u popularnom NPM paketu uzrokuje padove u raznim projektima

NPM repozitorij doživljava još jedan veliki prekid rada projekata zbog problema u novoj verziji jedne od popularnih ovisnosti. Izvor problema bilo je novo izdanje paketa mini-css-extract-plugin 2.5.0, dizajniranog za izdvajanje CSS-a u zasebne datoteke. Paket ima više od 10 milijuna tjednih preuzimanja i koristi se kao izravna ovisnost o više od 7 tisuća projekata.

U novoj verziji napravljene su promjene koje su narušile kompatibilnost unatrag pri uvozu biblioteke i dovele do pogreške pri pokušaju korištenja prethodno važeće i opisane u dokumentaciji konstrukcije “const MiniCssExtractPlugin = require('mini-css-extract-plugin') “, koje je pri prelasku na novu verziju trebalo zamijeniti s “const MiniCssExtractPlugin = require(“mini-css-extract-plugin”).default”.

Problem se očitovao u projektima koji se nisu eksplicitno vezali na broj verzije prilikom uključivanja ovisnosti. Kao zaobilazno rješenje, preporučuje se popraviti vezu na prethodnu verziju 2.4.5 dodavanjem '"overrides": {"mini-css-extract-plugin": "2.4.5"}' u Yarn ili korištenjem naredbe " npm i -D" --spremi-točno [e-pošta zaštićena]" u NPM-u.

Među žrtvama su bili korisnici paketa create-react-app koji je razvio Facebook, a koji povezuje mini-css-extract-plugin kao ovisnost. Zbog nedostatka povezivanja s brojem verzije mini-css-extract-plugina, pokušaji pokretanja create-react-app završili su pogreškom "TypeError: MiniCssExtractPlugin nije konstruktor". Problem je također utjecao na pakete @wordpress/scripts, @auth0/auth0-spa-js, sql-formatter-gui, LedgerSMB, vip-go-mu-plugins, cybros, vue-cli, chore itd.

Izvor: opennet.ru

Dodajte komentar