V repozitáři NPM došlo k dalšímu hromadnému výpadku projektů kvůli problémům v nové verzi jednoho z populárních závislostí. Příčinou problémů byl nový vydání balíčku mini-css-extract-plugin 2.5.0, určeného pro extrakci CSS do samostatných souborů. Balíček má více než 10 milionů týdenních stažení a používá se jako přímá závislost u více než 7 tisíc projektů.
V nové verzi byly provedeny změny, které narušily zpětnou kompatibilitu při importu knihovny a vedly k chybovým hlášením při pokusu o použití dříve povolené a v dokumentaci popsané konstrukce "const MiniCssExtractPlugin = require(‘mini-css-extract-plugin’)", kterou při přechodu na novou verzi bylo nutné nahradit za "const MiniCssExtractPlugin = require(„mini-css-extract-plugin“).default".
Problém se projevil v projektech, které neaplikují explicitní vazbu na číslo verze při připojování závislostí. Jako workaround doporučeno zafixovat vazbu na předchozí verzi 2.4.5 přidáním '"overrides": {"mini-css-extract-plugin": "2.4.5"}' do Yarnu nebo použitím příkazu "npm i -D --save-exact mini-css-extract-plugin@2.4.5" v NPM.
Mezi postiženými se ocitli uživatelé balíčku create-react-app, vyvíjeného společností Facebook, který připojuje mini-css-extract-plugin jako závislost. Kvůli absenci vazby na číslo verze mini-css-extract-plugin pokusy o spuštění create-react-app končily chybou "TypeError: MiniCssExtractPlugin is not a constructor". Problém se také dotkl balíčků @wordpress/scripts, @auth0/auth0-spa-js, sql-formatter-gui, LedgerSMB, vip-go-mu-plugins, cybros, vue-cli, chore atd.
Zdroj: opennet.ru
