Kršenje kompatibilnosti unatrag u popularnom NPM paketu uzrokuje padove u raznim projektima

NPM spremište doživljava još jedan veliki pad projekta zbog problema s novom verzijom popularne ovisnosti. Izvor problema bilo je novo izdanje mini-css-extract-plugin 2.5.0 paketa, dizajniranog za izdvajanje CSS-a u zasebne datoteke. Paket ima više od 10 miliona preuzimanja sedmično i koristi se kao direktna zavisnost za više od 7 projekata.

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

Problem se očitovao u projektima koji se eksplicitno ne vezuju za broj verzije kada uključuju ovisnosti. Kao zaobilazno rješenje, preporučuje se da popravite vezivanje za prethodnu verziju 2.4.5 dodavanjem '"pretpoređivanja": {"mini-css-extract-plugin": "2.4.5"}' u Yarn ili korištenjem naredbe " npm i -D --save-exact [email zaštićen]» u NPM.

Među žrtvama su bili korisnici paketa create-react-app koji je razvio Facebook, koji uključuje mini-css-extract-plugin kao zavisnost. Zbog nedostatka vezivanja za broj verzije mini-css-extract-plugin, pokušaji pokretanja create-react-app završili su se greškom "TypeError: MiniCssExtractPlugin nije konstruktor". Problem je uticao i 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