Ett bakåtkompatibilitetsavbrott i ett populärt NPM-paket har orsakat krascher i olika projekt.

NPM-förvaret upplever ännu ett massivt avbrott i projekt på grund av problem i den nya versionen av ett av de populära beroendena. Källan till problemen var den nya utgåvan av paketet mini-css-extract-plugin 2.5.0, designat för att extrahera CSS till separata filer. Paketet har mer än 10 miljoner nedladdningar per vecka och används som ett direkt beroende av mer än 7 tusen projekt.

I den nya versionen gjordes ändringar som kränkte bakåtkompatibiliteten vid import av biblioteket och ledde till ett fel när man försökte använda den tidigare giltiga och beskrivna i dokumentationskonstruktionen "const MiniCssExtractPlugin = require('mini-css-extract-plugin') ”, som vid byte till den nya versionen behövde ersättas med ”const MiniCssExtractPlugin = require(“mini-css-extract-plugin”).default”.

Problemet uppenbarade sig i projekt som inte explicit binder till versionsnumret när de inkluderar beroenden. Som en lösning rekommenderas det att fixa länken till den tidigare versionen 2.4.5 genom att lägga till '"overrides": {"mini-css-extract-plugin": "2.4.5"}' i Yarn eller använda kommandot " npm i -D" --save-exact [e-postskyddad]" i NPM.

Bland offren fanns användare av paketet create-react-app utvecklat av Facebook, som kopplar ihop mini-css-extract-plugin som ett beroende. På grund av bristen på bindning till mini-css-extract-plugin-versionsnumret slutade försök att starta create-react-app med felet "TypeError: MiniCssExtractPlugin är inte en konstruktor". Problemet påverkade också paketen @wordpress/scripts, @auth0/auth0-spa-js, sql-formatter-gui, LedgerSMB, vip-go-mu-plugins, cybros, vue-cli, chore, etc.

Källa: opennet.ru

Lägg en kommentar