Inbreuk op de achterwaartse compatibiliteit in een populaire NPM-pakket leidde tot storingen in verschillende projecten

In de NPM-repository is er opnieuw een massaal falen van projecten vanwege problemen met een nieuwe versie van een van de populaire afhankelijkheden. De oorzaak van de problemen is de nieuwe release van het pakket mini-css-extract-plugin 2.5.0, dat is bedoeld voor het extraheren van CSS in aparte bestanden. Het pakket heeft meer dan 10 miljoen downloads per week en wordt als directe afhankelijkheid gebruikt door meer dan 7.000 projecten.

In de nieuwe versie zijn er wijzigingen aangebracht die de achterwaartse compatibiliteit bij het importeren van de bibliotheek verstoren en tot een foutmelding leiden bij het proberen te gebruiken van de eerder toegestane en in de documentatie beschreven constructie 'const MiniCssExtractPlugin = require(‘mini-css-extract-plugin’)'. Bij de overstap naar de nieuwe versie moest deze worden vervangen door 'const MiniCssExtractPlugin = require(«mini-css-extract-plugin»).default'.

Het probleem deed zich voor in projecten die geen expliciete versiebinding toepasten bij het aansluiten van afhankelijkheden. Als tijdelijke oplossing werd aanbevolen om de binding aan de vorige versie 2.4.5 vast te leggen door ‘»overrides”: {«mini-css-extract-plugin»: «2.4.5»}’ toe te voegen in Yarn of het commando ‘npm i -D —save-exact mini-css-extract-plugin@2.4.5’ in NPM te gebruiken.

Onder de gedupeerden bevinden zich gebruikers van het pakket create-react-app, ontwikkeld door Facebook, die mini-css-extract-plugin als afhankelijkheid aansluit. Door het ontbreken van een versiebinding leidde het proberen om create-react-app te starten tot de foutmelding ‘TypeError: MiniCssExtractPlugin is not a constructor’. Het probleem raakte ook de pakketten @wordpress/scripts, @auth0/auth0-spa-js, sql-formatter-gui, LedgerSMB, vip-go-mu-plugins, cybros, vue-cli, chore, enz.

Bron: opennet.ru

Koop betrouwbare webhosting met bescherming tegen DDoS, VPS VDS servers 🔥 Koop betrouwbare webhosting met bescherming tegen DDoS, VPS VDS servers | ProHoster