În repozitoriul NPM se observă o nouă cădere masivă a proiectelor din cauza problemelor apărute în noua versiune a uneia dintre dependențele populare. Sursa problemelor a fost noul release al pachetului mini-css-extract-plugin 2.5.0, destinat extragerii CSS în fișiere separate. Pachetul are peste 10 milioane de descărcări săptămânale și este utilizat ca dependență directă în peste 7.000 de proiecte.
În noua versiune au fost aduse modificări care încalcă compatibilitatea inversă la importul bibliotecii și care cauzează generarea de erori atunci când se încearcă utilizarea unui construct anterior permis și descris în documentație, „const MiniCssExtractPlugin = require(‘mini-css-extract-plugin’)”, care la trecerea la noua versiune a trebuit înlocuit cu „const MiniCssExtractPlugin = require(„mini-css-extract-plugin”).default”.
Problema a apărut în proiectele care nu aplică o legătură explicită la numărul versiunii la conectarea dependențelor. Ca soluție temporară, se recomandă fixarea legăturii la versiunea anterioară 2.4.5 prin adăugarea ‘”overrides”: {“mini-css-extract-plugin”: “2.4.5”}’ în Yarn sau utilizând comanda „npm i -D —save-exact mini-css-extract-plugin@2.4.5” în NPM.
Printre utilizatori afectați se numără cei ai pachetului create-react-app dezvoltat de Facebook, care conectează mini-css-extract-plugin ca dependență. Din cauza lipsei legăturii la numărul versiunii mini-css-extract-plugin, încercările de a lansa create-react-app se încheiau cu generarea erorii „TypeError: MiniCssExtractPlugin nu este un constructor”. Problema a afectat, de asemenea, pachetele @wordpress/scripts, @auth0/auth0-spa-js, sql-formatter-gui, LedgerSMB, vip-go-mu-plugins, cybros, vue-cli, chore etc.
Sursa: opennet.ro
