Oortreding van terugwaartse verenigbaarheid in gewilde NPM-pakket veroorsaak ineenstortings in verskeie projekte

Die NPM-bewaarplek sien nog 'n massiewe projek ineenstort as gevolg van 'n probleem met 'n nuwe weergawe van 'n gewilde afhanklikheid. Die bron van die probleme was die nuwe vrystelling van die mini-css-extract-plugin 2.5.0-pakket, wat ontwerp is om CSS in aparte lΓͺers te onttrek. Die pakket het meer as 10 miljoen weeklikse aflaaie en word as 'n direkte afhanklikheid vir meer as 7 XNUMX projekte gebruik.

In die nuwe weergawe is veranderinge aangebring wat terugwaartse versoenbaarheid geskend het tydens die invoer van die biblioteek en gelei het tot 'n fout wanneer probeer om die voorheen geldige konstruksie te gebruik "const MiniCssExtractPlugin = require('mini-css-extract-plugin')" beskryf in die dokumentasie , wat, wanneer na die nuwe weergawe oorgeskakel word, vervang moes word met "const MiniCssExtractPlugin = require("mini-css-extract-plugin").default".

Die probleem het hom gemanifesteer in projekte wat nie eksplisiet aan die weergawenommer bind wanneer afhanklikhede ingesluit word nie. As 'n oplossing word dit aanbeveel om die binding aan die vorige weergawe 2.4.5 reg te stel deur '"overrides": {"mini-css-extract-plugin": "2.4.5"}' in Yarn by te voeg of die opdrag " npm i -D --save-presies [e-pos beskerm]Β» in NPM.

Onder die slagoffers was gebruikers van die create-react-app-pakket wat deur Facebook ontwikkel is, wat die mini-css-extract-plugin as 'n afhanklikheid insluit. As gevolg van die gebrek aan binding aan die mini-css-extract-plugin weergawenommer, het pogings om create-react-app te laat loop, geΓ«indig met die fout "TypeError: MiniCssExtractPlugin is nie 'n konstruktor nie". Die probleem het ook pakkette @wordpress/scripts, @auth0/auth0-spa-js, sql-formatter-gui, LedgerSMB, vip-go-mu-plugins, cybros, vue-cli, karwei, ens.

Bron: opennet.ru

Voeg 'n opmerking