Porušení zpětné kompatibility v oblíbeném balíčku NPM způsobuje pády v různých projektech

Úložiště NPM zažívá další masivní pád projektu kvůli problému s novou verzí oblíbené závislosti. Zdrojem problémů bylo nové vydání balíčku mini-css-extract-plugin 2.5.0, který byl navržen k extrahování CSS do samostatných souborů. Balíček má více než 10 milionů stažení týdně a používá se jako přímá závislost pro více než 7 XNUMX projektů.

V nové verzi byly provedeny změny, které porušovaly zpětnou kompatibilitu při importu knihovny a vedly k chybě při pokusu o použití dříve platné konstrukce "const MiniCssExtractPlugin = require('mini-css-extract-plugin')" popsané v dokumentaci , který při přechodu na novou verzi bylo potřeba nahradit "const MiniCssExtractPlugin = require("mini-css-extract-plugin").default".

Problém se projevil v projektech, které se při zařazování závislostí výslovně nevážou na číslo verze. Jako náhradní řešení se doporučuje opravit vazbu na minulou verzi 2.4.5 přidáním '"overrides": {"mini-css-extract-plugin": "2.4.5"}' do Yarn nebo pomocí příkazu " npm i -D --uložit-přesně [chráněno e-mailem]» v NPM.

Mezi oběťmi byli uživatelé balíčku create-react-app vyvinutého Facebookem, který obsahuje mini-css-extract-plugin jako závislost. Kvůli chybějící vazbě na číslo verze mini-css-extract-plugin skončily pokusy o spuštění create-react-app chybou „TypeError: MiniCssExtractPlugin není konstruktor“. Problém také ovlivnil balíčky @wordpress/scripts, @auth0/auth0-spa-js, sql-formatter-gui, LedgerSMB, vip-go-mu-plugins, cybros, vue-cli, chore atd.

Zdroj: opennet.ru

Přidat komentář