Et bakoverkompatibilitetsbrudd i en populær NPM-pakke har forårsaket krasj i ulike prosjekter.

NPM-depotet opplever nok et massivt utfall av prosjekter på grunn av problemer i den nye versjonen av en av de populære avhengighetene. Kilden til problemene var den nye utgivelsen av mini-css-extract-plugin 2.5.0-pakken, designet for å pakke ut CSS til separate filer. Pakken har mer enn 10 millioner ukentlige nedlastinger og brukes som en direkte avhengighet av mer enn 7 tusen prosjekter.

I den nye versjonen ble det gjort endringer som krenket bakoverkompatibiliteten ved import av biblioteket og førte til en feil ved forsøk på å bruke den tidligere gyldige og beskrevet i dokumentasjonskonstruksjonen "const MiniCssExtractPlugin = require('mini-css-extract-plugin') ”, som ved bytte til den nye versjonen måtte erstattes med “const MiniCssExtractPlugin = require(“mini-css-extract-plugin”).default”.

Problemet manifesterte seg i prosjekter som ikke eksplisitt bindet seg til versjonsnummeret når de inkluderte avhengigheter. Som en løsning anbefales det å fikse koblingen til forrige versjon 2.4.5 ved å legge til '"overrides": {"mini-css-extract-plugin": "2.4.5"}' i Yarn eller bruke kommandoen " npm i -D" --save-exact [e-postbeskyttet]" i NPM.

Blant ofrene var brukere av create-react-app-pakken utviklet av Facebook, som kobler mini-css-extract-plugin som en avhengighet. På grunn av mangelen på binding til mini-css-extract-plugin-versjonsnummeret, endte forsøk på å starte create-react-app med feilen "TypeError: MiniCssExtractPlugin is not a constructor". Problemet påvirket også pakkene @wordpress/scripts, @auth0/auth0-spa-js, sql-formatter-gui, LedgerSMB, vip-go-mu-plugins, cybros, vue-cli, chore, etc.

Kilde: opennet.ru

Legg til en kommentar