Malobservo de malantaŭen kongruo en populara NPM-pakaĵo kaŭzas kraŝojn en diversaj projektoj

La NPM-deponejo vidas alian masivan projektan kraŝon pro problemo kun nova versio de populara dependeco. La fonto de la problemoj estis la nova eldono de la pako mini-css-extract-plugin 2.5.0, dizajnita por ĉerpi CSS en apartajn dosierojn. La pako havas pli ol 10 milionojn da semajnaj elŝutoj kaj estas uzata kiel rekta dependeco por pli ol 7 XNUMX projektoj.

En la nova versio, ŝanĝoj estis faritaj kiuj malobservis malantaŭan kongruecon dum importado de la biblioteko kaj kaŭzis eraron kiam oni provis uzi la antaŭe validan konstruon "const MiniCssExtractPlugin = require('mini-css-extract-plugin')" priskribita en la dokumentado. , kiu, kiam oni ŝanĝas al la nova versio, devis esti anstataŭigita per "const MiniCssExtractPlugin = require("mini-css-extract-plugin").default".

La problemo manifestiĝis en projektoj, kiuj ne eksplicite ligas al la versio-numero kiam ili inkluzivas dependecojn. Kiel solvo, oni rekomendas ripari la ligon al la pasinta versio 2.4.5 aldonante '"overrides": {"mini-css-extract-plugin": "2.4.5"}' en Yarn aŭ uzante la komandon " npm i -D --save-exact [retpoŝte protektita]» en NPM.

Inter la viktimoj estis uzantoj de la create-react-app-pakaĵo evoluigita de Facebook, kiu inkluzivas la mini-css-extract-plugin kiel dependecon. Pro la manko de ligado al la numero de versio mini-css-extract-plugin, provoj ruli create-react-app finiĝis kun la eraro "TypeError: MiniCssExtractPlugin ne estas konstruanto". La problemo ankaŭ influis pakaĵojn @wordpress/scripts, @auth0/auth0-spa-js, sql-formatter-gui, LedgerSMB, vip-go-mu-plugins, cybros, vue-cli, chore, ktp.

fonto: opennet.ru

Aldoni komenton