Ang backward compatibility break sa isang sikat na NPM package ay nagdulot ng mga pag-crash sa iba't ibang proyekto.

Ang repositoryo ng NPM ay nakakaranas ng isa pang napakalaking pagkawala ng mga proyekto dahil sa mga problema sa bagong bersyon ng isa sa mga sikat na dependency. Ang pinagmulan ng mga problema ay ang bagong release ng mini-css-extract-plugin 2.5.0 package, na idinisenyo upang kunin ang CSS sa magkahiwalay na mga file. Ang package ay may higit sa 10 milyong lingguhang pag-download at ginagamit bilang direktang pag-asa sa higit sa 7 libong mga proyekto.

Sa bagong bersyon, ginawa ang mga pagbabago na lumabag sa backward compatibility kapag nag-import ng library at humantong sa isang error kapag sinusubukang gamitin ang dating wasto at inilarawan sa construction ng dokumentasyon na β€œconst MiniCssExtractPlugin = require('mini-css-extract-plugin') ”, na kapag lumipat sa bagong bersyon ay kailangang mapalitan ng β€œconst MiniCssExtractPlugin = require(β€œmini-css-extract-plugin”).default”.

Ang problema ay nagpakita mismo sa mga proyekto na hindi tahasang nagbubuklod sa numero ng bersyon kapag kasama ang mga dependency. Bilang isang solusyon, inirerekomendang ayusin ang link sa nakaraang bersyon 2.4.5 sa pamamagitan ng pagdaragdag ng '"overrides": {"mini-css-extract-plugin": "2.4.5"}' sa Yarn o gamit ang command na " npm i -D" --save-eksakto [protektado ng email]"sa NPM.

Kabilang sa mga biktima ang mga user ng create-react-app package na binuo ng Facebook, na nagkokonekta sa mini-css-extract-plugin bilang dependency. Dahil sa kakulangan ng pagbubuklod sa numero ng bersyon ng mini-css-extract-plugin, ang mga pagtatangkang maglunsad ng create-react-app ay natapos sa error na "TypeError: MiniCssExtractPlugin ay hindi isang constructor." Naapektuhan din ng isyu ang mga package @wordpress/scripts, @auth0/auth0-spa-js, sql-formatter-gui, LedgerSMB, vip-go-mu-plugins, cybros, vue-cli, chore, atbp.

Pinagmulan: opennet.ru

Magdagdag ng komento