Prerušenie spätnej kompatibility v populárnom balíku NPM spôsobilo pády v rôznych projektoch.

Úložisko NPM zažíva ďalší masívny výpadok projektov kvôli problémom v novej verzii jednej z obľúbených závislostí. Zdrojom problémov bolo nové vydanie balíka mini-css-extract-plugin 2.5.0, ktorý bol navrhnutý na extrahovanie CSS do samostatných súborov. Balík má viac ako 10 miliónov stiahnutí týždenne a používa sa ako priama závislosť na viac ako 7 tisíc projektoch.

V novej verzii boli vykonané zmeny, ktoré porušovali spätnú kompatibilitu pri importe knižnice a viedli k chybe pri pokuse použiť predtým platnú a v dokumentácii popísanú konštrukciu „const MiniCssExtractPlugin = require('mini-css-extract-plugin') “, ktorý bolo potrebné pri prechode na novú verziu nahradiť výrazom „const MiniCssExtractPlugin = require(“mini-css-extract-plugin”).default”.

Problém sa prejavil v projektoch, ktoré sa pri zaraďovaní závislostí vyslovene neviazali na číslo verzie. Ako riešenie sa odporúča opraviť odkaz na predchádzajúcu verziu 2.4.5 pridaním „prepisov“: {"mini-css-extract-plugin": "2.4.5"}' do Yarn alebo pomocou príkazu " npm i -D" --uložiť-presne [chránené e-mailom]"v NPM."

Medzi obeťami boli používatelia balíka create-react-app vyvinutého spoločnosťou Facebook, ktorý spája mini-css-extract-plugin ako závislosť. Kvôli chýbajúcej väzbe na číslo verzie doplnku mini-css-extract-plugin sa pokusy o spustenie aplikácie create-react skončili chybou „TypeError: MiniCssExtractPlugin nie je konštruktor“. Problém ovplyvnil aj balíky @wordpress/scripts, @auth0/auth0-spa-js, sql-formatter-gui, LedgerSMB, vip-go-mu-plugins, cybros, vue-cli, chore atď.

Zdroj: opennet.ru

Pridať komentár