Brud på bagudkompatibilitet i populær NPM-pakke forårsager nedbrud i forskellige projekter

NPM-lageret oplever endnu et massivt projektnedbrud på grund af et problem med en ny version af en populær afhængighed. Kilden til problemerne var den nye udgivelse af mini-css-extract-plugin 2.5.0-pakken, designet til at udpakke CSS til separate filer. Pakken har mere end 10 millioner ugentlige downloads og bruges som en direkte afhængighed til mere end 7 projekter.

I den nye version blev der foretaget ændringer, der krænkede bagudkompatibiliteten ved import af biblioteket og førte til en fejl ved forsøg på at bruge den tidligere gyldige konstruktion "const MiniCssExtractPlugin = require('mini-css-extract-plugin')" beskrevet i dokumentationen , som ved skift til den nye version skulle erstattes med "const MiniCssExtractPlugin = require("mini-css-extract-plugin").default".

Problemet manifesterede sig i projekter, der ikke eksplicit binder sig til versionsnummeret, når de inkluderer afhængigheder. Som en løsning anbefales det at rette bindingen til den tidligere version 2.4.5 ved at tilføje '"overrides": {"mini-css-extract-plugin": "2.4.5"}' i Yarn eller bruge kommandoen " npm i -D --save-exact [e-mail beskyttet]»i NPM.

Blandt ofrene var brugere af create-react-app-pakken udviklet af Facebook, som inkluderer mini-css-extract-plugin som en afhængighed. På grund af den manglende binding til mini-css-extract-plugin-versionsnummeret, endte forsøg på at køre create-react-app med fejlen "TypeError: MiniCssExtractPlugin is not a constructor". Problemet påvirkede også pakker @wordpress/scripts, @auth0/auth0-spa-js, sql-formatter-gui, LedgerSMB, vip-go-mu-plugins, cybros, vue-cli, chore osv.

Kilde: opennet.ru

Tilføj en kommentar