La violazione della retrocompatibilità nel popolare pacchetto NPM provoca arresti anomali in vari progetti

Il repository NPM sta assistendo a un altro enorme arresto anomalo del progetto a causa di un problema con una nuova versione di una dipendenza popolare. La fonte dei problemi era la nuova versione del pacchetto mini-css-extract-plugin 2.5.0, progettato per estrarre i CSS in file separati. Il pacchetto ha più di 10 milioni di download settimanali ed è utilizzato come dipendenza diretta per più di 7 progetti.

Nella nuova versione, sono state apportate modifiche che hanno violato la compatibilità con le versioni precedenti durante l'importazione della libreria e hanno generato un errore durante il tentativo di utilizzare la costruzione precedentemente valida "const MiniCssExtractPlugin = require('mini-css-extract-plugin')" descritta nella documentazione , che, quando si passava alla nuova versione, doveva essere sostituito con "const MiniCssExtractPlugin = require("mini-css-extract-plugin").default".

Il problema si è manifestato nei progetti che non si associano esplicitamente al numero di versione quando si includono le dipendenze. Come soluzione alternativa, si consiglia di correggere l'associazione alla versione precedente 2.4.5 aggiungendo '"overrides": {"mini-css-extract-plugin": "2.4.5"}' in Yarn o utilizzando il comando " npm i -D --save-exact [email protected]» in NPM.

Tra le vittime c'erano gli utenti del pacchetto create-react-app sviluppato da Facebook, che include il mini-css-extract-plugin come dipendenza. A causa della mancanza di collegamento al numero di versione del mini-css-extract-plugin, i tentativi di eseguire create-react-app sono terminati con l'errore "TypeError: MiniCssExtractPlugin non è un costruttore". Il problema ha interessato anche i pacchetti @wordpress/scripts, @auth0/auth0-spa-js, sql-formatter-gui, LedgerSMB, vip-go-mu-plugins, cybros, vue-cli, chore, ecc.

Fonte: opennet.ru

Aggiungi un commento