V repozitári NPM došlo k ďalšiemu hromadnému výpadku v projektoch v dôsledku problémov s novou verziou jednej z populárnych závislostí. Zdrojem problémov bola nová verzia balíka mini-css-extract-plugin 2.5.0, ktorý slúži na extrakciu CSS do samostatných súborov. Balík má viac ako 10 miliónov týždenných stiahnutí a používa sa ako priamu závislosť vo viac ako 7000 projektoch.
V novej verzii boli vykonané zmeny, ktoré narušili spätnú kompatibilitu pri importe knižnice a spôsobili chybu pri pokuse o použitie predtým platnej a v dokumentácii popísanej konštrukcie „const MiniCssExtractPlugin = require(‘mini-css-extract-plugin’)“, ktorú bolo potrebné pri prechode na novú verziu nahradiť za „const MiniCssExtractPlugin = require(„mini-css-extract-plugin“).default“.
Problém sa objavil v projektoch, ktoré neprikladali explicitnú väzbu k číslu verzie pri pripojení závislostí. Ako obchádzajúce riešenie problému sa odporúča zafixovať väzbu na predchádzajúcu verziu 2.4.5 pridaním ‘„overrides”: {“mini-css-extract-plugin”: “2.4.5”}’ do Yarn alebo použitím príkazu „npm i -D —save-exact mini-css-extract-plugin@2.4.5“ v NPM.
Medzi postihnutými boli používatelia balíka create-react-app, ktorý vyvíja spoločnosť Facebook a ktorý pridáva mini-css-extract-plugin ako závislosť. Kvôli nedostatku väzby na číslo verzie mini-css-extract-plugin sa pokusy o spustenie create-react-app končili chybou „TypeError: MiniCssExtractPlugin is not a constructor“. Problém sa tiež dotkol balíkov @wordpress/scripts, @auth0/auth0-spa-js, sql-formatter-gui, LedgerSMB, vip-go-mu-plugins, cybros, vue-cli, chore a ďalších.
Zdroj: opennet.ru
