La violation de la rétrocompatibilité dans le package NPM populaire provoque des plantages dans divers projets

Le référentiel NPM connaît une autre panne massive de projets en raison de problèmes dans la nouvelle version de l'une des dépendances les plus populaires. La source des problèmes était la nouvelle version du package mini-css-extract-plugin 2.5.0, conçu pour extraire le CSS dans des fichiers séparés. Le package compte plus de 10 millions de téléchargements hebdomadaires et est utilisé comme dépendance directe de plus de 7 XNUMX projets.

Dans la nouvelle version, des modifications ont été apportées qui violaient la rétrocompatibilité lors de l'importation de la bibliothèque et entraînaient une erreur lors de la tentative d'utilisation de la construction précédemment valide et décrite dans la documentation « const MiniCssExtractPlugin = require('mini-css-extract-plugin') », qui lors du passage à la nouvelle version devait être remplacé par « const MiniCssExtractPlugin = require(« mini-css-extract-plugin »).default ».

Le problème s'est manifesté dans les projets qui n'étaient pas explicitement liés au numéro de version lors de l'inclusion des dépendances. Pour contourner le problème, il est recommandé de corriger le lien vers la version précédente 2.4.5 en ajoutant '"overrides": {"mini-css-extract-plugin": "2.4.5"}' dans Yarn ou en utilisant la commande " npm i -D" --save-exact [email protected]" dans NPM.

Parmi les victimes figuraient des utilisateurs du package create-react-app développé par Facebook, qui connecte le mini-css-extract-plugin en tant que dépendance. En raison de l'absence de liaison avec le numéro de version du mini-css-extract-plugin, les tentatives de lancement de create-react-app se sont terminées par l'erreur « TypeError : MiniCssExtractPlugin n'est pas un constructeur ». Le problème affectait également les packages @wordpress/scripts, @auth0/auth0-spa-js, sql-formatter-gui, LedgerSMB, vip-go-mu-plugins, cybros, vue-cli, corvée, etc.

Source: opennet.ru

Ajouter un commentaire