Taaksepäin yhteensopivuuskatkos suositussa NPM-paketissa on aiheuttanut kaatumisia useissa projekteissa.

NPM-tietovarastossa on jälleen valtava projektikatkos johtuen ongelmista yhden suositun riippuvuuden uudessa versiossa. Ongelmien lähde oli paketin mini-css-extract-plugin 2.5.0 uusi julkaisu, joka on suunniteltu purkamaan CSS erillisiin tiedostoihin. Paketissa on yli 10 miljoonaa viikoittaista latausta, ja sitä käytetään suorana riippuvuutena yli 7 tuhannesta projektista.

Uudessa versiossa tehtiin muutoksia, jotka loukkasivat taaksepäin yhteensopivuutta kirjaston tuonnissa ja johtivat virheeseen yritettäessä käyttää aiemmin voimassa olevaa ja dokumentaatiossa kuvattua rakennetta "const MiniCssExtractPlugin = request('mini-css-extract-plugin') ”, joka uuteen versioon vaihdettaessa piti korvata tekstillä "const MiniCssExtractPlugin = request("mini-css-extract-plugin").default".

Ongelma ilmeni projekteissa, jotka eivät eksplisiittisesti sitoutuneet versionumeroon riippuvuuksia sisällytettäessä. Kiertokeinona on suositeltavaa korjata linkki aiempaan versioon 2.4.5 lisäämällä '"overrides": {"mini-css-extract-plugin": "2.4.5"}' Yarnissa tai käyttämällä komentoa " npm i -D" --tallenna-tarkka [sähköposti suojattu]" NPM:ssä.

Uhrien joukossa oli Facebookin kehittämän luo-reagoi-sovelluspaketin käyttäjiä, joka yhdistää mini-css-extract-pluginin riippuvuutena. Mini-css-extract-plugin-versionumeron sitomisen puutteen vuoksi luomis-react-sovelluksen käynnistämisyritykset päättyivät virheeseen "TypeError: MiniCssExtractPlugin ei ole rakentaja". Ongelma koski myös paketteja @wordpress/scripts, @auth0/auth0-spa-js, sql-formatter-gui, LedgerSMB, vip-go-mu-plugins, cybros, vue-cli, chore jne.

Lähde: opennet.ru

Lisää kommentti