Atgriezeniskās saderības pārtraukums populārajā NPM pakotnē ir izraisījis dažādu projektu avārijas.

NPM repozitorijs piedzīvo kārtējo masveida projektu pārtraukumu vienas no populārās atkarības jaunajās versijās radušos problēmu dēļ. Problēmu avots bija jaunais mini-css-extract-plugin 2.5.0 pakotnes laidiens, kas paredzēts CSS izvilkšanai atsevišķos failos. Pakotnei ir vairāk nekā 10 miljoni nedēļas lejupielāžu, un tā tiek izmantota kā tieša atkarība no vairāk nekā 7 tūkstošiem projektu.

Jaunajā versijā tika veiktas izmaiņas, kas, importējot bibliotēku, pārkāpa atpakaļejošu saderību un izraisīja kļūdu, mēģinot izmantot iepriekš derīgo un dokumentācijā aprakstīto konstrukciju “const MiniCssExtractPlugin = request('mini-css-extract-plugin') ”, kas, pārejot uz jauno versiju, bija jāaizstāj ar “const MiniCssExtractPlugin = request(“mini-css-extract-plugin”).default”.

Problēma izpaudās projektos, kas, iekļaujot atkarības, nebija tieši saistīti ar versijas numuru. Kā risinājums ir ieteicams labot saiti uz iepriekšējo versiju 2.4.5, pievienojot '"overrides": {"mini-css-extract-plugin": "2.4.5"}' Yarn vai izmantojot komandu " npm i -D" --saglabāt-precīzi [e-pasts aizsargāts]" NPM.

Starp upuriem bija Facebook izstrādātās pakotnes Create-React-app lietotāji, kas savieno mini-css-extract-plugin kā atkarību. Tā kā nav saistīšanas ar mini-css-extract-plugin versijas numuru, mēģinājumi palaist lietotni Create-react beidzās ar kļūdu “TypeError: MiniCssExtractPlugin is not a constructor”. Problēma skāra arī pakotnes @wordpress/scripts, @auth0/auth0-spa-js, sql-formatter-gui, LedgerSMB, vip-go-mu-plugins, cybros, vue-cli, chore utt.

Avots: opennet.ru

Pievieno komentāru