Парушэнне зваротнай сумяшчальнасці ў папулярным NPM-пакеце прывяло да збояў у розных праектах

У рэпазітары NPM назіраецца чарговы масавы збой у працы праектаў з-за ўзнікнення праблем у новай версіі адной з папулярных залежнасцяў. Крыніцай праблем стаў новы выпуск пакета mini-css-extract-plugin 2.5.0, прызначанага для вымання CSS у асобныя файлы. Пакет налічвае больш за 10 млн штотыднёвых загрузак і выкарыстоўваецца ў якасці прамой залежнасці ў больш за 7 тысяч праектаў.

У новай версіі былі ўнесены змены, якія парушаюць зваротную сумяшчальнасць пры імпарце бібліятэкі і прыводзілі да высновы памылкі пры спробе выкарыстання раней дапушчальнай і апісанай у дакументацыі канструкцыі "const MiniCssExtractPlugin = require('mini-css-extract-plugin')", якую пры пераходзе на новую версію запатрабавалася замяніць на "const MiniCssExtractPlugin = require("mini-css-extract-plugin").default".

Праблема выявілася ў праектах, якія не прымяняюць відавочную прывязку да нумара версіі пры падключэнні залежнасцяў. У якасці абыходнага шляху рашэння праблемы рэкамендавана зафіксаваць прывязку да мінулай версіі 2.4.5 праз даданне "overrides": {"mini-css-extract-plugin": "2.4.5"}' у Yarn або выкарыстаўшы каманду "npm i -D -save-exact [электронная пошта абаронена]» у NPM.

У ліку пацярпелых апынуліся карыстачы які развіваецца кампаніяй Facebook пакета create-react-app, які падлучае mini-css-extract-plugin у якасці залежнасці. З-за адсутнасці прывязкі да нумара версіі mini-css-extract-plugin спробы запуску create-react-app завяршаліся высновай памылкі "TypeError: MiniCssExtractPlugin is not a constructor". Праблема таксама закранула пакеты @wordpress/scripts, @auth0/auth0-spa-js, sql-formatter-gui, LedgerSMB, vip-go-mu-plugins, cybros, vue-cli, chore і г.д.

Крыніца: opennet.ru

Дадаць каментар